Das Builder -Modell richtet sich an die Konstruktion komplexer Objekte. Zum Beispiel besteht ein Produkt aus mehreren Teilen und jeder Teil kann separat hergestellt werden. Zu diesem Zeitpunkt kann das Builder -Modell verwendet werden, um jeden Teil des Produkts durch den Bauunternehmer zu konstruieren, und dann vervollständigt der Regisseur die Montage des Endprodukts.
Merkmale:
1. Die Arbeitsteilung ist klarer und die Organisation und Struktur werden getrennt, was die Produktion von Produkten besser kontrollieren kann.
2. leicht zu erweitern. Wenn es neue Bedürfnisse gibt, implementieren Sie einfach die Ausrede des Builders.
Anwendungen in der Entwicklung auf Unternehmensebene und häufig verwendeten Frameworks: Jmail
Komposition: Produktkategorie, abstrakter Builder, Builder, Direktor.
Produktkategorie:
PUBLIC CLASSE PRODUKT {private String parta; // Ein Teil des Produkts kann einer Klasse privat String partb in der tatsächlichen Entwicklung entsprechen; // Ein Teil des Produkts kann einer Klasse private Zeichenfolge in der tatsächlichen Entwicklung entsprechen; // Ein Teil des Produkts kann einer Klasse private Zeichenfolge in der tatsächlichen Entwicklung entsprechen.Abstrakter Erbauer:
// Es kann auch ein abstrakter Klasse für öffentliche Schnittstelle sein (public void setParta (String parta); public void setPartb (String partb); public void setPartc (String partc);}
Builder -Implementierungsklasse:
öffentliche Klasse BuilderImpl implementiert Builder {privates Produkt; public BuilderImpl () {product = new Product (); } public void builderParta () {String parta = new String (); // simulieren einen Teil der Fabrikmethode zur Herstellung von Produkten.SetParta (parta); } public void builderPartb () {String partb = new String (); // Simulieren Sie einen Teil der Fabrikmethode, um Produkt zu produzieren. } public void setPartC () {String partc = new String (); // Simulieren Sie einen Teil der Produktproduktion im Werksmethode protrot.setPartc (partc); } Public Product getProduct () {return this.product; }}Regisseur Kategorie:
öffentlicher Klassendirektor {privater Builder B; Public Director (Builder Newb) {this.b = newb; } public void createBuilder (Builder b) {this.b = b; } public product ConstructProduct () {B.BuilderParta (); B.BuilderPartb (); B.BuilderPartc (); }}Testklasse:
öffentliche Klasse Demo {public static void main (String [] args) {builder b = new BuilderImpl (); Direktor D = neuer Director (); D.Createbuilder (b); Produkt p = C.ConstructProduct (); }}Aus dem obigen Beispiel ist es nicht schwer zu ermitteln, dass es durchaus möglich ist, ein anderes anderes Produkt zusammenzustellen, da die Direktorklasse die Versammlung des Produkts kontrolliert. Wenn wir die abstrakte Konstruktionsklasse erneut implementieren, können auch völlig unterschiedliche Produkte auftreten. Daher können wir feststellen, dass das Builder-Modell abstrakter und prozessorientierter ist.
Im Vergleich zum abstrakten Fabrikmodell ist es nicht schwer festzustellen, dass die beiden überraschend ähnlich sind, aber warum gibt es zwei verschiedene Designmodelle? Tatsächlich liegt der Fokus auf der Komplexität und Abstraktion des Produkts. Das Builder -Modell ist abstrakter und komplexer als das abstrakte Fabrikmodell. Das heißt, die Produkte, mit denen sich das Builder -Modell befasst, sind komplexer als die Produkte, mit denen sich die abstrakte Fabrik befassen, und gleichzeitig ist der Produktproduktionsprozess länger und abstrakter.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.