Este artigo descreve o uso do modo Builder para implementar a função de solicitar pacotes de telefones celulares. Compartilhe -o para sua referência, como segue:
1. Definição do padrão
O construtor simplesmente entende para construir as coisas, mas o modelo do construtor não é uma coisa simples, mas uma coisa relativamente complexa.
2. Exemplos do modelo
1 Análise de padrão
Emprestamos um exemplo de um cliente que vai ao pacote de telefonia móvel para se inscrever em um pacote de telefone celular para ilustrar esse modelo após a análise abstrata, obtemos as seguintes informações sobre o cliente Zhang San - o operador do Hall de Negócios da Demanda do Terminal - o instrutor (notificando o construtor que tipo de pacote de telefone celular produzir)
Computer - Builder (construa vários pacotes de telefones celulares)
Pacote de telefone celular - produto
2 modelagem estática do modo construtor
3 exemplos de código
3.1 Crie um produto - pacote de telefone celular
pacote com.demo.buider.model; classe pública mobilePackage {// LIGE DE BATO DE FLOAT PRIVADO DINHEIRO; // SMS Private int Shortinfo; // Música de corda privada de cailamento; public float getMoney () {Return Money; } public void setMoney (Float Money) {this.money = Money; } public int getShortinfo () {return shortinfo; } public void setShortinfo (int shortinfo) {this.shortinfo = shortinfo; } public string getMusic () {return music; } public void setMusic (String music) {this.music = music; }}3.2 Interface do construtor
pacote com.demo.buider.itf; importar com.demo.buider.model.mobilepackage;/** * construtor de pacotes móveis * * @author * */interface pública imobilebuilder {// Taxa de telefone para criar pacote móvel pacote public void BuildMoney (); // SMS para criar pacote móvel public void BuildShortinfo (); // Cailing público void BuildMusic (); // retorna ao objeto de pacote móvel construído MobilePackage getMobilePackage ();}3.3 Estabeleça um construtor específico
Construtor específico 1
pacote com.demo.buider.itf; importar com.demo.buider.base.abstractBasePackage; importar com.demo.buider.model.mobilePackage;/** * Pacote de pacote 1 * * @author maofw * * classe publicBuilderIlderImPl1 @PhonePlemMent IMPORMENTMENT IMPORMENTMENT IMSOFIM BuildMoney () {this.MobilePackage.SetMoney (20.0F); } // Cailing public void BuildMusic () {this.MobilePackage.SetMusic ("Angel"); } // SMS para criar pacote móvel public void BuildShortinfo () {this.MobilePackage.SetShortinfo (400); } // retorna ao objeto de pacote móvel construído public mobilePackage getMobilePackage () {return this.MobilePackage; }}Construtor específico 2
pacote com.demo.buider.itf; importar com.demo.buider.base.abstractBasePackage; importar com.demo.buider.model.mobilePackage;/** ** pacote 2 * * @author maofw * * classe publicBuilderIlderImpl2 Photo PhonePlentMents IMPRESTMENTMEGRESSOGIMENTOS IMPORTURANTES IMPORTURANTES IMPROTTIONSOBILE BuildMoney () {this.MobilePackage.SetMoney (30.0F); } // Cailing public void BuildMusic () {this.MobilePackage.SetMusic ("Sea"); } // sms para criar pacote móvel public void BuildShortinfo () {this.MobilePackage.SetShortinfo (600); } // retorna ao objeto de pacote móvel construído public mobilePackage getMobilePackage () {return this.MobilePackage; }}3.4 Criando um mentor
pacote com.demo.buider.director; importar com.demo.buider.itf.imobilebuilder; importar com.demo.buider.model.mobilePackage;/** * Mobile Package Instructor * * @author maofw */public class MobiledErtEtor {Public MobilEpctor * * (MobileBuilder! = NULL) {// Construa Bill MobileBuilder.BuildMoney (); // construir mensagem de texto móvelbuilder.buildshortinfo (); // construir cailamento móvelbuilder.buildmusic (); // retorna ao pacote móvel retorna o celularBuilder.getMobilePackage (); } retornar nulo; }}Deixe os clientes pedirem pacotes de telefones celulares
package com.demo.buider;import com.demo.buider.director.MobileDirector;import com.demo.buider.itf.MobileBuilderImpl1;import com.demo.buider.itf.MobileBuilderImpl2;import com.demo.buider.model.MobilePackage;public class MainApp{ /** * main application* * @param args */ public static void main (string [] args) {// crie um mentor mobiledirector mobiledirector = new Mobiledirector (); // Plano 1 MobileBuilderImpl1 MobileBuilderImpl1 = new MobileBuilderImpl1 (); // Plano 2 MobileBuilderImpl2 MobileBuilderImpl2 = new MobileBuilderImpl2 (); printMessage (mobiledirector.createmobilePackage (MobileBuilderImpl1)); printMessage (mobiledirector.createmobilePackage (MobileBuilderImpl2)); }/*** Informações do pacote de impressão*/public estático void printMessage (mobilePackage mobilePackage) {System.out.println ("-Telcoding:" + mobilePackage.getMoney () + "/t sms:" + mobilEpackage.getShortinfo () + "Twitter/t }}Resultados de execução
-----D: 20.0 SMS: 400 Cailing: Angel
-----D: 30.0 SMS: 600 Cailing: Dahai
3. O princípio de definir o modelo
1 etapa para criar objetos complexos
2. Construa e represente separação
3 Princípio de responsabilidade única
4. Use ocasiões
1 Quando o objeto do produto tem uma estrutura complexa dentro dele
2 Quando objetos complexos precisam ser separados da representação, eles podem precisar criar representações diferentes
3 Quando é necessário ocultar o desempenho estrutural do produto dos clientes
Para obter mais informações sobre os algoritmos Java, os leitores interessados neste site podem visualizar os tópicos: "Estrutura de dados Java e tutorial de algoritmo", "Resumo das dicas de nó da operação Java Dom", "Resumo de dicas de operação de Java e Operação de Java" e "Resumo de Java cache" Tips "TIPS"
Espero que este artigo seja útil para a programação Java de todos.