Ich denke, es ist ein Ort für Abstrakte Fabrik ist eher als eine einfache Fabrik Muster an Orten, wo Ihre instantiations sehr kompliziert sind, zu kompliziert und hässlich für eine einzelne Fabrik und zu kompliziert für die Benutzeroberfläche zu verstehen.
Sagen wir, das ist eine Marke TYPE_A nicht eine einzige Klasse .. sagen wir mal, es gibt eine Familie von 100 Arten von ähnlichen Klassen von Typ-A und Sie müssen ein Objekt von ihnen instanziieren. Stellen Sie sich vor, Sie benötigen eine detaillierte Information, um das richtige Objekt aus einer Marke vieler ähnlicher Objekte zu machen. In dieser Objekteinheit müssen Sie genau wissen, welche Parameter Sie einstellen und wie Sie sie abstimmen.
In der speziellen Fabrik für diese Marke werden wir sie differenzieren und das genaue Objekt zur Instanziierung und auch zur Instanziierung bekommen. wir werden das anhand der Eingabe aus dem Netz (sagen wir mal, welche Farbe im Online-Shop verfügbar ist) und von anderen Anwendungen und Diensten, die im Hintergrund ausgeführt werden, kennen (Parameter, die der Benutzeroberfläche nicht bekannt sind).
Und vielleicht morgen haben wir eine andere Familie von sagen wir type_B und type_C instanziieren. So die UI wird die "wenn sonst" zu wissen, ob der Benutzer ein "type_A", "type_B" oder "type_C" wollen - aber die Fabriken Klassen werden genau entscheiden, welche Klasse aus dem Typ (aus der Familie) zu bauen, und wie man es stimmt - welche Werte man auf seine Parameter einstellt oder an seinen Auftragnehmer sendet. All dies - gemäß vielen Parametern, die der Benutzeroberfläche nicht bekannt sind. All dies wird für eine einzelne Fabrikklasse zu viel sein.
Alle diese Beispiele beschreiben das Factory Method Pattern, da alle eine einzelne Produktschnittstelle zurückgeben. Keines davon ist ein Abstraktes Fabrikmuster, weil keines von ihnen eine Familie verwandter Produktschnittstellen erzeugt. – jaco0646
Im Interesse einer vollständigen Offenlegung sollte der Autor dieser Antwort klargestellt haben, dass er auch der Autor jeder der verknüpften Antworten ist; also ist diese Liste ** NICHT ** eine repräsentative Stichprobe aus der SO-Community. – jaco0646
@ jaco0646 IIRC, das [Factory Method Pattern] (https://en.wikipedia.org/wiki/Factory_method_pattern) ist eine Spezialisierung des [Template Method pattern] (https://en.wikipedia.org/wiki/Template_method_pattern)), die auf Vererbung beruht. Ich mag mich jedoch irren, da ich gerade reise und mein GoF-Buch nicht bei mir habe. Was meinen Sie mit "keiner von ihnen produziert eine Familie verwandter Produktschnittstellen"? –