Este artigo descreve o uso do modo de protótipo para Java mostrar a vida cotidiana. Compartilhe -o para sua referência, como segue:
1. Definição do padrão
Especifique o tipo de objetos a serem criados com instâncias de protótipo e crie novos objetos copiando esses protótipos.
2. Exemplos do modelo
1 Análise de padrão
Usamos a situação de trabalho diário para ilustrar esse modelo.
Diagrama de análise de 2 enredo
3 modelagem estática no modo de protótipo
4 exemplos de código
4.1 Criação de protótipo
pacote com.prototype.pojo;/** * Classe de vida diária * * @author * */public class DayLife implementa cloneable {// Método de construção public DayLife () {System.out.println ("-O método de construção é executado!-"); } // levantar a String Private String Getup; // pegue o ônibus de string privado bybus; // Desça e compre café da manhã Private String Getfood; // Tire uma soneca ao meio -dia; // Comece a trabalhar à tarde, madrugada à tarde; // Vá para casa do trabalho do trabalho Private String Gohome; // Noite de cordas privadas de lazer noturna; public String getGetup () {return getup; } public void setgetup (string getup) {this.getup = getup; } public string getByBus () {return bybus; } public void setByBus (string bybus) {this.bybus = bybus; } public string getGetfood () {return getfood; } public void setgetfood (string getfood) {this.getfood = getfood; } public string getNoon () {retorna meio -dia; } public void setNoon (string Noon) {this.noon = Noon; } public string getAfternowork () {retornar à tarde; } public void se setAfternWork (String tardework) {this.Afternworkwork = tardywork; } public string getgohome () {return gohome; } public void setGoHome (string gohome) {this.gohome = gohome; } public string getnight () {retorna noite; } public void setnight (String Night) {this.night = Night; } / *** Imprima informações diárias da vida* / public void print () {System.out.println (this.getGetup ()); System.out.println (this.getBybus ()); System.out.println (this.getGetFood ()); System.out.println (this.getnoon ()); System.out.println (this.getAfternWorkwork ()); System.out.println (this.getgohome ()); System.out.println (this.getnight ()); } / *** Método clone* / @Override public DayLife clone () {tente {// Chame o método clone da superclass (superclass? Nenhuma classe é integrada? De onde vem a superclasse? Não se esqueça, todas as classes são subclasses do objeto!) Return (DayLife) Super.Clon (); } catch (Exceção e) {} retornar null; }}4.2 Crie uma fábrica abstrata que gera objetos de protótipo
pacote com.prototype.factory; importar com.prototype.pojo.daylife;/** * classe de fábrica * * @author * */interface pública ilifefactory {/** * objeto da vida de produção * * @return */public DayLife getNewInstance ();}4.3 Crie uma fábrica específica para gerar objetos de protótipo
pacote com.prototype.factory.impl; import com.prototype.factory.ilifefactory; importar com.prototype.pojo.daylife;/** * Classe de implementação da fábrica * * @author * */public class LifeFactoryImpl implementos ilifefactorl {// Daylife objeto é usado para inicializar privado privado /** * GetNewInstance Método Implementação: * * Primeiro determine se o Daylife é nulo: * Se for nulo, use novo para criar um objeto Daylife, defina o conteúdo inicial e atribua -o à instância do objeto Daylife e retorne; * Se não for nulo, use o método clone da Daylift para gerar um novo objeto e copiá -lo para o objeto Daylife e depois retornar */ @Override public DayLife getNewInstance () {// Determine se a vida do dia é nula se (DayLife == NULL) {// se nulo // a produção é um objeto gerado usando o novo. Nota: Use este novo apenas uma vez! System.out.println ("New Daylife!"); // Defina o conteúdo da vida do dia Daylife = new DayLife (); DayLife.setGetup ("Get Up às 7:00"); DayLife.setByBus ("Pegue o ônibus às 7:30"); DayLife.SetGetFood ("Getgetget descendo no ponto de ônibus perto da empresa às 8:30 e, ao passar pelo carro do café da manhã ao lado da estrada, você comprará café da manhã e o levará para a empresa juntos"); Daylife.setNoon ("O almoço é resolvido em um pequeno restaurante perto da empresa e depois tire uma soneca no assento do escritório"); DayLife.SetAfternworkwork ("13:30 começou o trabalho da tarde"); DayLife.setGohome ("17:30 saiu do trabalho na hora"); DayLife.setnight ("Evening Entertainment"); } else {// se não for nulo // a saída é um objeto gerado usando o clone Method System.out.println ("Clone DayLife!"); // Atribua o objeto clone a Daylife e retorno DayLife = DayLife.Clone (); } retornar a vida do dia; }}4.4 Cenário de trabalho diário Exibir
pacote com; import com.prototype.factory.ilifefactory; import com.prototype.factory.impl.lifefactoryImpl; importar com.prototype.pojo.dayLife;/** * Aplicativo principal * * @author * */public client {public static void main (string [] args) {/ //author * */public client {public static void main (string [] args) {/ //41/; // Imprima o conteúdo padrão da vida diurna LifeFactory.getNewInstance (). Print (); // Obtenha a vida do dia novamente, modifique o conteúdo da Getup e o conteúdo de saída System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Daylife2.Setgetup ("Fiquei na cama de manhã! Levantei -me até 7 :: 30!");Resultados de execução
Novo Daylife!
- O método de construção foi executado! -
Levante -se às 7:00
Pegue o ônibus às 7:30
Saia no ponto de ônibus perto da empresa às 8:30. Ao passar pelo carro do café da manhã ao lado da estrada, você comprará café da manhã e o levará à empresa para almoçar. Em seguida, tire uma soneca no assento do escritório.
O trabalho da tarde começou às 13:30
Saia do trabalho a tempo às 17:30 e divirta -se à noite
------------------------------
Clone Daylife!
Fique na cama de manhã! 7 :: 15 Antes de se levantar!
Pegue o ônibus às 7:30
Saia no ponto de ônibus perto da empresa às 8:30. Ao passar pelo carro do café da manhã ao lado da estrada, você comprará café da manhã e o levará à empresa para almoçar. Em seguida, tire uma soneca no assento do escritório.
O trabalho da tarde começou às 13:30
Saia do trabalho a tempo às 17:30 e divirta -se à noite
3. O design original deste modelo
1 O método construtor do objeto não é executado ao clonar um objeto
2 cópia rasa e cópia profunda
4. Use ocasiões
1 O processo de geração de uma contraparte é relativamente complicado e a inicialização requer muitos recursos.
2 Quando você deseja que o protótipo da estrutura e o objeto gerado seja separado
3 Quando o mesmo objeto pode ser acessado por outros chamadores ao mesmo tempo
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.