Heim  >  Artikel  >  Java  >  Was ist Java Builder Pattern?

Was ist Java Builder Pattern?

WBOY
WBOYnach vorne
2023-05-02 12:04:061319Durchsuche

1. Stellen Sie eine Frage

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. .

Was ist Java Builder Pattern?

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.

2. Was ist der Builder-Modus?

  • 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.
  • Director (Director): Wird hauptsächlich zum Erstellen eines Objekts mithilfe der Builder-Schnittstelle verwendet. Es hat zwei Hauptfunktionen. Eine besteht darin, den Produktionsprozess des Kunden und des Objekts zu isolieren, und die andere besteht darin, den Produktionsprozess des Produktobjekts zu steuern.
  • 3 Wenn der Fallcode
  • wie folgt lautet Wenn der Bau eines Hauses mithilfe des Builder-Musters gelöst wird, sieht das Klassendiagramm wie folgt aus (die vier Hauptrollen sind enthalten), die House-Klasse ist das spezifische Produkt (die Entität des Hauses, das wir bauen möchten) und der HouseBuilder ist es Der abstrakte Builder wird nicht intern implementiert, sondern durch mehrere Unterklassen darunter vervollständigt. Diese Unterklassen sind die spezifischen Builder (CommonHouse, HighBuilding), und der Kommandant ist HouseDirector, der für den Konstruktionsprozess des Produkts verantwortlich ist Objekte. (Welche Art von Haus möchte ich bauen). , die relevante Schnittstelle, die von der übergeordneten Klasse implementiert wird.

Was ist Java Builder Pattern?

Was ist Java Builder Pattern?Appendable ist ein abstrakter Builder und definiert abstrakte Methoden

AbstractStringBuilder implementiert die Appendable-Schnittstellenmethode, die jedoch nicht instanziiert werden kann.

StringBuilder fungiert gleichzeitig als spezifischer Builder. Vollständig und StringBuilder erbt AbstractStringBuilder. Was ist Java Builder Pattern?

Was ist Java Builder Pattern?4. Zusammenfassung des Builder-Musters

Was ist Java Builder Pattern?

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.
  • Jeder Betonbauer ist relativ unabhängig und hat nichts mit anderen Betonbauern zu tun. Daher ist es einfach, Betonbauer zu ersetzen oder neue Betonbauer hinzuzufügen, indem er unterschiedliche Produktobjekte für Betonbauer verwendet.
  • Sie können den Produktentstehungsprozess genauer steuern. Durch die Aufteilung der Entstehungsschritte komplexer Produkte in verschiedene Methoden wird der Entstehungsprozess übersichtlicher und die Steuerung des Entstehungsprozesses durch Programme erleichtert.
  • Das Hinzufügen neuer konkreter Builder erfordert keine Änderung des Codes der ursprünglichen Klassenbibliothek. Die Commander-Klasse ist für die abstrakte Builder-Klasse programmiert. Das System ist einfach zu erweitern und entspricht dem „Open-Close-Prinzip“.
  • 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen