Angenommen, wir müssen ein Haus bauen: Der Prozess besteht aus dem Stapeln, dem Bauen von Wänden und dem Abdecken. Es gibt verschiedene Arten von Häusern, wie zum Beispiel normale Häuser, Hochhäuser und Villen. Obwohl der Prozess für alle Arten von Häusern gleich ist, sind die Anforderungen nicht gleich. 3) Bitte schreiben Sie ein Programm, um die Anforderungen zu erfüllen.
Die traditionelle Idee sollte in Form des folgenden Klassendiagramms vorliegen. .
Der Vorteil dieser Schreibweise ist, dass sie leichter zu verstehen und einfacher zu bedienen ist.
Die Nachteile sind: Die entworfene Programmstruktur ist zu einfach, es ist kein Cache-Layer-Objekt entworfen und die Programmerweiterung und -wartung ist nicht gut. Mit anderen Worten: Dieses Entwurfsschema umfasst das Produkt (z. B. das Haus) und den Prozess der Herstellung des Produkts (z. B. den Hausbauprozess) und die Kopplung wird verbessert.
Lösung: Produkt und Produktbauprozess entkoppeln => Builder-Muster.
Builder Pattern, auch Generatormuster genannt, ist ein Objektkonstruktionsmuster. Es kann den Konstruktionsprozess komplexer Objekte (abstrakte Kategorien) abstrahieren, sodass verschiedene Implementierungsmethoden dieses abstrakten Prozesses Objekte mit unterschiedlichen Darstellungen (Eigenschaften) konstruieren können. .
Das Builder-Muster ermöglicht es Benutzern, komplexe Objekte nur durch Angabe ihres Typs und Inhalts zu erstellen Es gibt vier Hauptrollen im Builder-Muster:
Produkt (Produktrolle): Ein bestimmtes Produktobjekt.
Builder (abstrakter Builder): Erstellen Sie verschiedene Komponenten einer angegebenen Schnittstelle/abstrakten Klasse
ConcreteBuilder (Concrete Builder): Implementiert die Schnittstelle, erstellt und montiert verschiedene Komponenten.Appendable ist ein abstrakter Builder und definiert abstrakte Methoden
StringBuilder fungiert gleichzeitig als spezifischer Builder. Vollständig und StringBuilder erbt AbstractStringBuilder.
4. Zusammenfassung des Builder-Musters
Der Client (Benutzerprogramm) muss die Details der internen Zusammensetzung des Produkts nicht kennen, wodurch das Produkt selbst vom Produkterstellungsprozess entkoppelt wird, sodass dieselbe Erstellung möglich ist Der Prozess kann verschiedene Produktobjekte erstellen.Die im Builder-Modus erstellten Produkte haben im Allgemeinen mehr Gemeinsamkeiten und ihre Komponenten sind ähnlich. Wenn die Unterschiede zwischen den Produkten groß sind, ist der Builder-Modus nicht geeignet Die Nutzung unterliegt bestimmten Einschränkungen.
Wenn die internen Änderungen des Produkts komplex sind, kann es dazu führen, dass viele spezifische Builder-Klassen definiert werden müssen, um solche Änderungen zu implementieren, was dazu führt, dass das System sehr groß wird , also in diesem Fall Überlegen Sie, ob Sie in diesem Fall den Builder-Modus wählen möchten.
Das abstrakte Fabrikmuster implementiert die Erstellung von Produktfamilien. Bei der Verwendung des abstrakten Fabrikmusters handelt es sich um eine Reihe von Produkten erfordern Sie kümmern sich nur um den Bauprozess und darum, welche Produkte von welchen Fabriken hergestellt werden. Das Builder-Modell erfordert den Bau eines Produkts nach einem festgelegten Bauplan. Sein Hauptzweck besteht darin, durch den Zusammenbau von Ersatzteilen ein neues Produkt herzustellen.
Das obige ist der detaillierte Inhalt vonWas ist Java Builder Pattern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!