Este artigo descreve o método de implementação do modelo de fábrica do padrão de design Java. Compartilhe -o para sua referência, como segue:
O modelo de fábrica fornece principalmente uma interface de transição para criar objetos, de modo a proteger e isolar o processo específico de criação de objetos, de modo a alcançar o objetivo de melhorar a flexibilidade.
O modelo de fábrica está dividido em três categorias:
1) modelo simples de fábrica: não propício à geração de séries de produtos;
2) Método da Fábrica: Também conhecido como Fábrica Polimórfica;
3) Modelo de fábrica abstrato: também conhecido como caixa de ferramentas, produz famílias de produtos, mas não é propício à geração de novos produtos;
1. Modelo de fábrica simples
O modo simples de fábrica também é conhecido como modo de método de fábrica estática. Ao renomear, você pode ver que esse padrão deve ser muito simples. Seu objetivo é simples: defina uma interface para criar objetos.
No modelo simples de fábrica, uma classe de fábrica está no centro das chamadas de instanciação para uma classe de produto, que determina qual classe de produto deve ser instanciada, assim como um policial de trânsito fica no fluxo de veículos e decide liberar o veículo em que direção fluir. Vamos dar uma olhada em sua composição:
1) Função da fábrica: esse é o núcleo desse modelo, que contém certa lógica de negócios e lógica de julgamento. Em Java, é frequentemente implementado por uma classe concreta.
2) Função do produto abstrato: geralmente é uma classe de pais herdada por um produto específico ou uma interface implementada. Implementado por interfaces ou classes abstratas em Java.
3) Função específica do produto: O objeto criado pela classe de fábrica é uma instância dessa função. Implementado por uma classe concreta em Java.
2. Modelo de método de fábrica
O modelo de método de fábrica é a abstração e promoção adicional do modelo simples de fábrica. No modelo de método da fábrica, ele não é mais determinado por apenas uma classe de fábrica que a classe de produto deve ser instanciada. Esta decisão é entregue à subclasse da fábrica abstrata a tomar. Vamos dar uma olhada em sua composição:
1) Função de fábrica abstrata: esse é o núcleo do padrão de método da fábrica, não tem nada a ver com o aplicativo. É uma interface que uma função de fábrica específica deve implementar ou uma classe pai que deve ser herdada. Em Java, é implementado por classes ou interfaces abstratas.
2) Função específica de fábrica: ele contém código relacionado à lógica de negócios específica. Chamado pelo aplicativo para criar o objeto de produto específico correspondente.
3) Função do produto abstrato: é a classe pai herdada por um produto específico ou uma interface implementada. Em Java, geralmente existem classes ou interfaces abstratas para implementá -las.
4) Função específica do produto: O objeto criado por uma função de fábrica específica é uma instância dessa função. Implementado por classes de concreto em Java.
O padrão de método da fábrica usa várias subclasses herdadas do papel abstrato da fábrica para substituir a "classe de Deus" no simples padrão de fábrica. Como mencionado acima, isso compartilhará a pressão sobre o objeto; E isso tornará a estrutura flexível - quando um novo produto (ou seja, o carro do Nouveau Riche) for gerado, desde que seja gerado de acordo com o contrato fornecido pelo papel abstrato do produto e pela função de fábrica abstrata, ele pode ser usado pelo cliente sem precisar modificar nenhum código existente. Pode -se observar que a estrutura do papel da fábrica também está em conformidade com o princípio de abrir e fechar!
O código é o seguinte:
// RONA DE PRODUTO ABRATO Public Interface Moverable {void run ();} // Role de produto específico classe pública Plane implementa móveis {@Override public void run () {System.out.println ("plano ...."); }} classe pública Broom implementa móveis {@Override public void run () {System.out.println ("Broom ......"); }} // Resumo da classe public abstrata veículo veículo {abstract móvel create ();} // Classe de fábrica especial de fábrica Planete estende veículo factory {public móvel create () {return New Plane (); }} classe pública Broomfactory estende o veículo {public móvel create () {return New Broom (); }} // Classe de teste da classe pública Test {public static void main (string [] args) {veículo factory factory = new BroomFactory (); MOVELÁVEL M = FACTORY.CREATE (); M.Run (); }}3. Padrão de fábrica abstrato
O código é o seguinte
// Classe de fábrica abstrata Classe public abstract AbstractFactory {public abstract Vehicle CreateHicle (); Arma abstrata pública CreateWeaPon (); public abstract Food Createfood ();} // Classe de fábrica de concreto, onde alimentos, veículos, armas são classes abstratas, a classe pública DefaultFactory estende abstratofactory {@Override public Food Createfood () {return New Apple (); } @Override Public Vehicle CreateHicle () {return New Car (); } @Override Public Arma CreateWeaPon () {return New Ak47 (); }} // Classe de teste da classe public Veículo v = f.createvehicle (); v.run (); Arma w = f.createaPon (); w.shoot (); Alimento a = f.createfood (); a.printName (); }}No padrão abstrato da fábrica, o produto abstrato pode ser um ou mais, formando uma ou mais famílias de produtos. No caso de apenas uma família de produtos, o padrão de fábrica abstrato realmente degenera para o padrão de método da fábrica.
Resumir:
(1) O padrão simples de fábrica é criar instâncias de outras classes por uma classe específica. A classe pai é a mesma e a classe pai é específica.
(2) O padrão de método da fábrica é que existe uma classe pai abstrata que define a interface pública, e a subclasse é responsável pela geração de objetos concretos. O objetivo disso é atrasar a instanciação da classe para a subclasse.
(3) O padrão de fábrica abstrato fornece uma interface para criar uma série de objetos relacionados ou interdependentes sem especificar suas classes específicas. Ele tem como alvo estruturas hierárquicas com vários produtos. O modelo de método da fábrica é destinado à estrutura de hierarquia de um produto.
Para mais conteúdo relacionado ao Java, os leitores interessados neste site podem visualizar os tópicos: "Estrutura de dados Java e tutorial de algoritmo", "Resumo da operação Java Dom Node Tips", "Resumo de Dicas de Operação de Arquivos e Diretórios de Java" e "Resumo das dicas de operação do Java Cache"
Espero que este artigo seja útil para a programação Java de todos.