O padrão do construtor é usado principalmente para "construir um objeto complexo em etapas", onde "etapas" é um algoritmo estável, enquanto partes de objetos complexos geralmente mudam. Portanto, o modelo do construtor é usado principalmente para resolver as mudanças de necessidades da "parte do objeto". Isso permite um controle mais detalhado do processo de construção de objetos.
pacote com.shejimoshi.create.builder;/*** Função: a intenção é separar a construção de um objeto complexo de sua representação, para que o mesmo processo de construção possa criar representações diferentes* Aplicabilidade:* Quando o algoritmo é o que é o algoritmo para a criação de objetos complexos [a classe de algoritmo; ferramenta de sequência protegida2; public PersonBuilder (String T1, String T2) {this.tool1 = T1; this.tool2 = t2; } // Desenho de cabeça pública abstrato void acúmulo (); // desenha o corpo abstrato público void Buildbody (); // desenhe o pé esquerdo e o pé direito abstrato public void BuilMarmleft (); abstrato público void Builtarmright (); // Desenhe a mão esquerda e a mão direita abstrato public void Buildlegleft (); Public Abstract Void BuildleGright ();} Nosso gerador abstrato deriva as subclasses correspondentes para construir o tipo de uso real correspondente
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 PersonThinBuilder extends PersonBuilder{ public PersonThinBuilder(String t1, String t2) {super (t1, t2); } @Override public void acwitchead () {System.out.println ("Desenhe um cabeçalho fino"); } @Override public void Buildbody () {System.out.println ("Desenhe um corpo fino"); } @Override public void Builtarmleft () {System.out.println ("Desenhe o braço esquerdo fino"); } @Override public void BuiltArmright () {System.out.println ("Desenhe a perna esquerda fina"); } @Override public void BuildLegleft () {System.out.println ("Desenhe a perna esquerda fina"); } @Override public void BuildLeGright () {System.out.println ("Desenhe a perna direita do homem magro"); }} 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 acwitchead () {System.out.println ("Desenhe a cabeça de um homem gordo"); } @Override public void Buildbody () {System.out.println ("Desenhe o corpo de um homem gordo"); } @Override public void Builtarmleft () {System.out.println ("Desenhe o braço esquerdo de um homem gordo"); } @Override public void BuiltArmright () {System.out.println ("Desenhe o braço direito de um homem gordo"); } @Override public void BuildLegleft () {System.out.println ("Desenhe a perna esquerda de um homem gordo"); } @Override public void BuildLeGright () {System.out.println ("Desenhe a perna direita do homem gordo"); }} Nosso gerador é entregue ao comandante para implementar a ação criada
pacote com.shejimoshi.create.builder;/*** função: crie o comandante do personagem*/classe pública Persondirector {private PersonBuilder PB; // Passe o modelo de criação de caracteres correspondente Public PERSONDirector (Personbuilder pber) {this.pb = pber; } // Crie uma pessoa public void CreatePerson () {pb.buildhead (); pb.buildbody (); pb.buildarmleft (); pb.buildarmright (); pb.buildLegleft (); pb.buildlegright (); }} Casos de teste:
pacote com.shejimoshi.create.builder;/*** função: programa do cliente*/public class Test {// Crie o caractere correspondente public static void create (personbuilder pb) {// Crie o objeto correspondente com o modelo passado por parâmetros persendirector Pd = new Persendirector (pb); pd.createperson (); } public static void main (string [] args) {PersonThInbuilder ptb = new PersonThInBuilder ("Image Tool", "Brush"); criar (ptb); // Crie um fino System.out.println ("============================================================================== ======================================================================================================================================================================================================asse ======================================================================================================================================================================================================asse ===================================================================================================================================== Crie um fino System.out.out.println ("============================================================================================================================================================================ quaseroeóusroóóó ,ó quase quase quaseóeeeóó,,, quee ,.000, Res, Resseroeeóroórorororororororororororororororororororororoóorquiggomidesfalvam System.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out. Resultados em execução:
Desenhe a cabeça de um homem magro, desenhe um corpo fino, desenhe o corpo de um homem magro, desenhe o braço esquerdo de um homem magro, desenhe o braço direito de um homem magro, desenhe a perna esquerda de um homem magro, desenhe a perna direita de um homem magro, =========================================================================================================== =========================================================================================================== Desenhe a cabeça de um homem gordo, desenhe o corpo de um homem gordo, desenhe o braço esquerdo de um homem gordo, desenhe a perna direita de um homem gordo
O exposto acima é o modelo Java Builder, espero que seja útil para todos aprenderem a programação Java.