El patrón del constructor se usa principalmente para "construir un objeto complejo en los pasos", donde los "pasos" son un algoritmo estable, mientras que las partes de los objetos complejos a menudo cambian. Por lo tanto, el modelo Builder se usa principalmente para resolver los cambios de necesidades de la "parte del objeto". Esto permite un control más detallado del proceso de construcción de objetos.
paquete com.shejimoshi.create.builder;/*** Función: la intención es separar la construcción de un objeto complejo de su representación, de modo que el mismo proceso de construcción pueda crear diferentes representaciones* Aplicabilidad:* Cuando el algoritmo para crear objetos complejos debe ser independiente de los componentes del objeto y cómo están ensamblados*/Clase abstracto público Persona de clase abstracta {// La herramienta que se requiere una herramienta que se requiere para dibujar una herramienta que se requiera una herramienta de caracteres. herramienta de cadena protegida2; Public PersonBuilder (String T1, String t2) {this.tool1 = t1; this.tool2 = t2; } // Dibujo de cabeza pública abstract void buildhead (); // dibujar el cuerpo público abstracto void buildBody (); // Dibuja el pie izquierdo y el pie derecho público abstracto buildarmleft (); público abstracto buildarmright (); // Dibuja la mano izquierda y la mano derecha abstracto abstracto buildlegleft (); Public Abstract void buildlegright ();} Nuestro generador abstracto deriva las subclases correspondientes para construir el tipo de uso real correspondiente
paquete com.shejimoshi.create.builder;/*** Función: la intención es separar la construcción de un objeto complejo de su representación, para que el mismo proceso de construcción pueda crear diferentes representaciones* Aplicabilidad:* Cuando el algoritmo para crear objetos complejos debe ser independiente de los componentes del objeto y cómo son la persona de la clase pública*/la persona de la clase pública extiende a la persona de los objetos públicos {Personbuilder {Personbuilder {Personbuilder (la persona de hilos (String T1, String T1, String T1, String T1, StrinShinBuilder (String T1, String T1, String T1, String T1, StringShinbuilder (String T1, String T1, String T1, String T1, String TaNTI t2) {super (t1, t2); } @Override public void buildhead () {system.out.println ("dibujar un encabezado delgado"); } @Override public void buildBody () {System.out.println ("dibujar un cuerpo delgado"); } @Override public void buildarmleft () {system.out.println ("dibuja el brazo izquierdo delgado"); } @Override public void buildarMright () {System.out.println ("Dibuja la pierna delgada izquierda"); } @Override public void buildLegleft () {System.out.println ("Dibuja la pierna delgada izquierda"); } @Override public void buildlegright () {System.out.println ("Dibuja la pierna derecha del hombre delgado"); }} package com.shejimoshi.create.Builder;/** * Function: The intention is to separate the construction of a complex object from its representation, so that the same construction process can create different representations* Applicability: * When the algorithm for creating complex objects should be independent of the components of the object and how they are assembled*/public class PersonFatBuilder extends PersonBuilder{ public PersonFatBuilder(String t1, String t2) {super (t1, t2); } @Override public void buildhead () {system.out.println ("dibujar la cabeza de un hombre gordo"); } @Override public void buildBody () {System.out.println ("dibujar el cuerpo de un hombre gordo"); } @Override public void buildarmleft () {system.out.println ("dibujar el brazo izquierdo de un hombre gordo"); } @Override public void buildarMright () {System.out.println ("dibuja el brazo derecho de un hombre gordo"); } @Override public void buildLegleft () {System.out.println ("Dibuja la pierna izquierda de un hombre gordo"); } @Override public void buildlegright () {System.out.println ("Dibuja la pierna derecha del hombre gordo"); }} Nuestro generador se entrega al comandante para implementar la acción creada
paquete com.shejimoshi.create.builder;/*** Función: crea el comandante del personaje*/public class Persondirector {Private PersonBuilder Pb; // Pase el modelo de creación de personajes correspondiente PERSONDIRECTOR PUBLIC (PersonBuilder PBER) {this.pb = pBer; } // crear una persona public void createperson () {pb.buildhead (); pb.buildbody (); pb.Buildarmleft (); Pb.BuilDarmright (); pb.BuildLegleft (); pb.BuildLeGright (); }} Casos de prueba:
paquete com.shejimoshi.create.builder;/*** función: programa de cliente*/prueba de clase pública {// Cree el personaje correspondiente público void static create (personsBuilder pb) {// Cree el objeto correspondiente con el modelo aprobado por los parámetros PERSONDIRECTOR PD = New PERSONDIRECTOR (PB); pd.createperson (); } public static void main (string [] args) {personThinBuilder ptb = new PersonThinBuilder ("Herramienta de imagen", "Brush"); crear (ptb); // crear un delgado System.out.println ("=============================================================================== =========================================================================================================================================================== =========================================================================================================================================================== ============================================================================================================================================================== ¡ Cree un sistema delgado.out.out.println ("============================================================================ase System.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out. Resultados de ejecución:
Dibuja la cabeza de un hombre delgado, dibuja un cuerpo delgado, dibuja el cuerpo de un hombre delgado, dibuja el brazo izquierdo de un hombre delgado, dibuja el brazo derecho de un hombre delgado, dibuja la pierna izquierda de un hombre delgado, dibuja la pierna derecha de un hombre delgado, =========================================================================================================== =========================================================================================================== Dibuja la cabeza de un hombre gordo, dibuja el cuerpo de un hombre gordo, dibuja el brazo izquierdo de un hombre gordo, dibuja la pierna derecha de un hombre gordo
Lo anterior es el modelo Java Builder, espero que sea útil para todos aprender la programación Java.