Im Factory-Muster ist die Fabrik für die Erstellung verschiedener Subtypes eines Objekts verantwortlich, je nach Bedarf. Stellen Sie sich zum Beispiel einen Baumeister vor, der alles aus Holz und Glas baut, einen zweiten, der alles mit Stein und Eisen baut, und einen dritten, der Gold und Diamanten verwendet. Indem Sie die gleichen Stufen anrufen, erhalten Sie ein normales Haus vom ersten Baumeister, ein kleines Schloss aus dem zweiten und einen Palast aus dem dritten. Dies würde jedoch nur funktionieren, wenn der Clientcode, der die Erstellungsschritte aufruft, in der Lage ist, mit Buildern über eine gemeinsame Schnittstelle zu interagieren. In diesem Beispiel des Builder-Musters wird veranschaulicht, wie Sie denselben Objektkonstruktionscode wiederverwenden können, wenn Sie verschiedene Produkttypen, z. B. Autos, erstellen und die entsprechenden Handbücher für sie erstellen. So werden verschiedene Arten von Lebensmitteln von Factory Muster gemacht, aber die verschiedenen Varianten (Geschmacksrichtungen) eines bestimmten Lebensmittels werden von Builder Muster gemacht. Das Buildermuster konzentriert sich auf die Schrittweiseerstellung eines komplexen Objekts. Es entkoppelt die Darstellung vom Prozess der Konstruktion des komplexen Objekts, so dass der gleiche Konstruktionsprozess für verschiedene Darstellungen verwendet werden kann.

Der Direktor weiß, welche Bauschritte ausgeführt werden müssen, um ein funktionierendes Produkt zu erhalten. Abstraktes Muster betont “nur” bei der “Abstraktion” von (mehreren, aber verwandten) Objekten. Wikipedia-Eintrag für Werksmuster: en.wikipedia.org/wiki/Factory_method_pattern Bei Designmustern gibt es in der Regel keine “vorteilhaftere” Lösung, die für alle Fälle funktioniert. Es hängt davon ab, was Sie implementieren müssen. Um das Autobeispiel fortzusetzen, haben Sie möglicherweise eine createCar Builder-Methode, die ein Honda-Typ-Objekt mit einem 4-Zylinder-Motor erstellt, oder ein Honda-Typ-Objekt mit 6 Zylindern. Das Builder-Muster ermöglicht diese feinere Granularität. Mithilfe des Buildermusters trennen Sie den Algorithmus zum Erstellen eines komplexen Objekts von den verschiedenen Komponenten, die zum Erstellen dieses Objekts verwendet werden. Factory: Wird zum Erstellen einer Instanz eines Objekts verwendet, bei der die Abhängigkeiten des Objekts vollständig von der Factory gehalten werden.

Für das abstrakte Fabrikmuster gibt es oft viele konkrete Implementierungen derselben abstrakten Fabrik.