Hinweis: Fragen finden Sie am Ende des Beitrags.
Ich habe die anderen Stackoverflow-Threads zu Abstract Factory vs Factory Method gelesen . Ich verstehe die Absicht jedes Musters. Die Definition ist mir jedoch nicht klar.
Die Factory-Methode definiert eine Schnittstelle zum Erstellen eines Objekts, lässt jedoch Unterklassen entscheiden, welche davon instanziiert werden sollen. Mit einer Factory-Methode können Klassen die Instanziierung auf Unterklassen verschieben.
Im Gegensatz dazu bietet eine abstrakte Factory eine Schnittstelle zum Erstellen von Familien verwandter oder abhängiger Objekte, ohne deren konkrete Klassen anzugeben.
Die Abstract Factory sieht der Factory-Methode sehr ähnlich . Ich habe einige UML-Klassen gezeichnet, um meinen Standpunkt zu veranschaulichen.
Hinweis:
- Das Diagramm stammt von www.yuml.com und ist daher nicht perfekt ausgerichtet. Aber es ist ein kostenloser Service :).
- Die Diagramme sind möglicherweise nicht perfekt. Ich lerne immer noch die GoF- Designmuster.
Fabrikmethode:
Abstrakte Fabrik (nur 1 Mitglied):
Abstract Factory (weitere Mitglieder):
Fragen:
- Wenn die Abstract Factory nur einen Schöpfer und ein Produkt hat, ist es dann immer noch das Abstract Factory- Muster? (eine Schnittstelle zum Erstellen von Familien)
- Kann der konkrete Ersteller der Factory-Methode aus einer Schnittstelle erstellt werden oder muss er aus einer Klasse stammen? (Klassen verschieben Instanziierungen auf Unterklassen)
- Wenn die Abstract Factory nur einen Ersteller und ein Produkt haben kann, besteht der einzige Unterschied zwischen der Abstract Factory und der Factory-Methode darin, dass der Ersteller für die erstere eine Schnittstelle und der Ersteller für die letztere eine Klasse ist?