Nachdem ich endlich ernsthaft angefangen habe, einige grundlegende Muster zu lernen (sehr spät in der Karriere, aber das ist eine andere Geschichte), versuche ich, mich mit den Unterschieden zwischen Factory Pattern und Abstract Factory vertraut zu machen.
Was sind die Hauptunterschiede zwischen diesen beiden Mustern?
Ich verstehe, dass die Factory-Methode Objekte durch Vererbung und Abstract Factory durch Objektkomposition erstellt, aber aus praktischer Sicht habe ich immer noch Probleme, mir genau vorzustellen, wie sie funktionieren.
design-patterns
factory-method
Phil.Wheeler
quelle
quelle
new
es sich nicht um eine Methode handelt (in einigen - zugegebenermaßen gewöhnlichen - Objektsystemen).Antworten:
Die Factory-Methode wird normalerweise durch eine switch-Anweisung kategorisiert, bei der jeder Fall eine andere Klasse unter Verwendung derselben Root-Schnittstelle zurückgibt, sodass der aufrufende Code niemals Entscheidungen über die Implementierung treffen muss.
Stellen Sie sich eine Kreditkartenprüferfabrik vor, die für jeden Kartentyp einen anderen Prüfer zurückgibt.
In der Abstract Factory gibt es mehrere konkrete Factory-Klassen (keine Factory-Methoden), die von einer Schnittstelle abgeleitet sind und möglicherweise viele verschiedene Typen von verschiedenen Methoden zurückgeben.
Stellen Sie sich einen Schachspielmanager mit einer anderen Klasse für jeden Satz von Variantenregeln vor.
Eine abstrakte Fabrik wird ähnlich wie eine Strategie häufig mit einer Fabrikmethode ausgewählt, aber es ist nicht erforderlich, sie zu kombinieren, damit es ein eigenes Muster ist.
quelle