Das Builder -Muster wird hauptsächlich verwendet, um "ein komplexes Objekt in Schritten zu erstellen", wobei "Schritte" ein stabiler Algorithmus ist, während sich Teile komplexer Objekte häufig ändern. Daher wird das Builder -Modell hauptsächlich verwendet, um die Bedürfnisse Änderungen des "Objektteils" zu lösen. Dies ermöglicht eine detailliertere Kontrolle des Objektkonstruktionsprozesses.
Paket com.shejimoshi.create.builder;/*** Funktion: Die Absicht besteht darin, die Konstruktion eines komplexen Objekts von seiner Darstellung zu trennen, damit der gleiche Konstruktionsprozess unterschiedliche Darstellungen erzeugen kann* Anwendbarkeit:* Wenn das Algorithmus zum Erstellen komplexer Objekte unabhängig sein sollte, um das Objekt zu erstellen. geschütztes String -Tool2; public PersonBuilder (String t1, String t2) {this.tool1 = t1; this.tool2 = t2; } // Head Public abstrakter void Buildhead () zeichnen; // Zeichnen Sie den Körper öffentlich abstrakter Leerraum buildbody (); // Zeichnen Sie den linken Fuß und den rechten Fuß öffentliche abstrakte void buildarmleft (); öffentliche abstrakte void Buildarmright (); // Zeichnen Sie die linke und die rechte Hand öffentliche abstrakte void BuildleGleft (); public abstract void BuildleGright ();} Unser abstrakter Generator leitet die entsprechenden Unterklassen ab, um den entsprechenden tatsächlichen Gebrauchstyp zu konstruieren
Paket com.shejimoshi.create.builder;/*** Funktion: Die Absicht besteht darin, die Konstruktion eines komplexen Objekts von seiner Darstellung zu trennen, damit der gleiche Konstruktionsprozess unterschiedliche Darstellungen erzeugen kann t2) {Super (t1, t2); } @Override public void Buildhead () {System.out.println ("Dünne Header zeichnen"); } @Override public void BuildBody () {System.out.println ("Dünne Körper zeichnen"); } @Override public void buildarmleft () {System.out.println ("Den dünnen linken Arm zeichnen"); } @Override public void buildarmright () {System.out.println ("das dünne linke Bein zeichnen"); } @Override public void buildlegleft () {System.out.println ("Dünne linke Bein zeichnen"); } @Override public void BuildleGright () {System.out.println ("Zeichnen Sie das rechte Bein des dünnen Mannes"); }} Paket com.shejimoshi.create.builder;/*** Funktion: Die Absicht besteht darin, die Konstruktion eines komplexen Objekts von seiner Darstellung zu trennen, damit der gleiche Konstruktionsprozess unterschiedliche Darstellungen erzeugen kann t2) {Super (t1, t2); } @Override public void buildhead () {System.out.println ("Zeichnen Sie den Kopf eines fetten Mannes"); } @Override public void Buildbody () {System.out.println ("Zeichnen Sie den Körper eines fetten Mannes"); } @Override public void BuildArmleft () {System.out.println ("Zeichnen Sie den linken Arm eines fetten Mannes"); } @Override public void buildarmright () {System.out.println ("Zeichnen Sie den rechten Arm eines fetten Mannes"); } @Override public void buildlegleft () {System.out.println ("Zeichnen Sie das linke Bein eines fetten Mannes"); } @Override public void BuildleGright () {System.out.println ("Zeichnen Sie das rechte Bein des fetten Mannes"); }} Unser Generator wird dem Kommandanten übergeben, um die erstellte Aktion umzusetzen
Paket com.shejimoshi.create.builder;/*** Funktion: Erstellen Sie den Kommandanten des Charakters*/Public Class Persondirector {private personbuilder pb; // Pass das entsprechende Zeichen für Charaktererstellung public Persondirector (Personbuilder Pber) {this.pb = pber; } // Erstellen Sie eine Person public void createPerson () {pb.buildhead (); pb.buildbody (); pb.buildarmleft (); pb.buildarmright (); pb.buildLEGLEFT (); pb.buildleGright (); }} Testfälle:
Paket com.shejimoshi.create.builder;/*** Funktion: Client -Programm*/public class test {// Erstellen Sie das entsprechende Charakter Public static void create (Personbuilder pb) {// Erstellen Sie das entsprechende Objekt mit dem Modell, das von Parametern Persontrektor pd = new persondirector (pb) übergeben wurde. pd.CreatePerson (); } public static void main (String [] args) {PersonthinBuilder ptb = new PersonthinBuilder ("Bild -Tool", "Pinsel"); create (ptb); // Erstellen Sie ein dünnes System.out.println("========================================================================== =========================================================ieben =========================================================ieben =======================================================ieben Create a thin System.out.out.println("=============================================================================== Create a thin System.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out. Auslaufergebnisse:
Zeichne den Kopf eines dünnen Mannes, zeichne einen dünnen Körper, zeichne den Körper eines dünnen Mannes, zeichne den linken Arm eines dünnen Mannes, zeichne den rechten Arm eines dünnen Mannes, zeichne das linke Bein eines dünnen Mannes, zeichne das rechte Bein eines dünnen Mannes. ==================================================================ieben ==================================================================ieben Zeichne den Kopf eines dicken Mannes, zeichne den Körper eines dicken Mannes, zeichne den linken Arm eines fetten Mannes, zeichne das rechte Bein eines fetten Mannes
Das obige ist das Java Builder -Modell, ich hoffe, es wird für alle hilfreich sein, Java -Programme zu lernen.