Mit drei neuen Autobauern und einem Autobaudirektor können wir Autos wie diese konstruieren: Das Konstruktionsmuster der Factory-Methode wird anstelle des regulären Klassenkonstruktors verwendet, um sich an die SOLID-Prinzipien der Programmierung zu halten und die Konstruktion von Objekten von den Objekten selbst zu entkoppeln. Dies hat die folgenden Vorteile und ist unter anderem für die folgenden Fälle nützlich: [2] Verwenden Sie das Muster, um die Geschäftslogik einer Klasse von den Implementierungsdetails von Algorithmen zu isolieren, die im Kontext dieser Logik möglicherweise nicht so wichtig sind. Das Buildermuster hat Sie möglicherweise an das Vorlagenmethodenmuster erinnert. Verwenden Sie das Strategiemuster, wenn Sie verschiedene Varianten eines Algorithmus innerhalb eines Objekts verwenden und während der Laufzeit von einem Algorithmus zu einem anderen wechseln möchten. Das Builder-Muster verwendet jeden Betonbauer (StandardCarBuilder, SportCarBuilder und ElectronicCarBuilder), um die teileunterschiedlichen Teile zu kapseln. Im Software-Engineering sind Kreationsentwurfsmuster Entwurfsmuster, die sich mit Objekterstellungsmechanismen befassen und versuchen, Objekte in einer der Situation angemessenen Weise zu erstellen. Die grundlegende Form der Objekterstellung kann zu Entwurfsproblemen oder zu zusätzlicher Komplexität des Entwurfs führen. Erstellungsmuster lösen dieses Problem, indem sie diese Objekterstellung irgendwie steuern. Wenn Sie mehr als eine Darstellung des Zubaus des Objekts haben, das Sie erstellen müssen, sollten Sie das Buildermuster berücksichtigen. Andernfalls könnte es übertrieben sein.
Das Factory Method [1]-Entwurfsmuster ist eines der “Gang of Four”-Entwurfsmuster, die beschreiben, wie wiederkehrende Entwurfsprobleme gelöst werden können, um flexible und wiederverwendbare objektorientierte Software zu entwerfen, d. h. Objekte, die einfacher zu implementieren, zu ändern, zu testen und wiederzuverwenden sind. Das Buildermuster trennt die Konstruktion eines komplexen Objekts von seiner Darstellung, sodass derselbe Konstruktionsprozess unterschiedliche Darstellungen erzeugen kann. Da modernes Software-Engineering mehr von der Objektzusammensetzung als von der Klassenvererbung abhängt, verlagert sich der Schwerpunkt weg von harten Codierungsverhalten hin zu einer Definition eines kleineren Satzes grundlegender Verhaltensweisen, die in komplexere Verhaltensweisen umgewandelt werden können. [7] Harte Codierungsverhalten sind unflexibel, da sie das Gesamte überschreiben oder neu implementieren müssen, um Teile des Entwurfs zu ändern. Darüber hinaus fördert Hardcodierung keine Wiederverwendung und macht es schwierig, Fehler nachzuverfolgen. Aus diesen Gründen sind Erstellungsmuster nützlicher als hartcodierendes Verhalten. Kreationsmuster machen Design flexibler. Sie bieten verschiedene Möglichkeiten, explizite Verweise in den konkreten Klassen aus dem Code zu entfernen, der sie instanziieren muss. [8] Mit anderen Worten, sie schaffen Unabhängigkeit für Objekte und Klassen. Das Factorymethodenmuster basiert auf vererbung, da die Objekterstellung an Unterklassen delegiert wird, die die Factorymethode zum Erstellen von Objekten implementieren.
[3] Mit dem Strategiemuster können Sie eine solche Bedingung abschaffen, indem Sie alle Algorithmen in separate Klassen extrahieren, die alle dieselbe Schnittstelle implementieren. Das ursprüngliche Objekt delegiert die Ausführung an eines dieser Objekte, anstatt alle Varianten des Algorithmus zu implementieren.