Explicação Detalhada do Padrão Factory Method: Simulando a Realização de uma Fábrica de Processamento de Frutas

Olá, queridos leitores e amigos! Neste artigo, vamos levá-lo para explorar o padrão de método de fábrica Java em profundidade. Na casa do tesouro dos padrões de design, o padrão de método de fábrica pode ser descrito como a pérola brilhante. Ele resolve o problema de acoplamento de criação e uso de objetos, tornando o código mais conciso e fácil de manter. Portanto, para melhorar nosso nível de programação, vamos aprender e dominar o padrão do método de fábrica juntos!

1. Introdução

O Factory Method Pattern é um padrão de design criacional e um dos padrões de design mais comumente usados ​​em Java. Ele define uma interface de fábrica para criar objetos e permite que suas subclasses decidam qual objeto instanciar, qual é a melhor ilustração do polimorfismo. Comparado com o padrão de fábrica simples, no padrão de método de fábrica, uma classe de fábrica separada não é mais responsável pela criação de todos os produtos, mas a criação de produtos específicos é entregue a subclasses de fábrica específicas. A ideia central é separar a criação e o uso de objetos para melhorar a escalabilidade e a manutenção do código.

1.1 Princípio de projeto

Os quatro elementos do padrão de método de fábrica

  1. interface de fábrica. Projete um método de fábrica para criar produtos. A interface de fábrica é o núcleo do padrão de método de fábrica, que interage diretamente com o chamador para fornecer produtos.
  2. Implementação de fábrica. Ou seja, a classe de fábrica específica precisa implementar o método de fábrica na interface de fábrica e é responsável por criar objetos de produto específicos.
  3. Interface do produto.
  4. Realização do produto.

Diagrama de classe UML
então

1.2 Vantagens

  1. Acoplamento reduzido entre módulos: O padrão de fábrica separa a criação e o uso de objetos, fornecendo classes de fábrica abstratas e classes de fábrica concretas, reduzindo assim o acoplamento entre os módulos.
  2. Melhore a escalabilidade do código: Ao estender a classe de fábrica específica, o padrão de fábrica pode facilmente adicionar novos objetos de produto, melhorando assim a escalabilidade do código.
  3. Os detalhes da criação do objeto estão ocultos: o padrão de fábrica encapsula os detalhes da criação do objeto em uma classe de fábrica específica, e o cliente não precisa se preocupar com o processo de criação do objeto, mas apenas obter os objetos necessários por meio da classe de fábrica.
  4. Manter a consistência do código: O padrão fábrica concentra a criação de objetos na classe fábrica, o que mantém a consistência do código e evita a duplicação de código.
  5. O polimorfismo pode ser alcançado: O padrão de fábrica pode atingir o polimorfismo por meio da combinação de classes de fábrica abstratas e classes de fábrica concretas, de modo a se adaptar melhor às necessidades de mudança.

1.3 Desvantagens

  1. Maior complexidade do sistema: A introdução de padrões de fábrica aumentará o número de classes e objetos no sistema, aumentando assim a complexidade do sistema.
  2. Aumente a abstração do sistema: O padrão de fábrica realiza a criação de objetos por meio da combinação da interface de fábrica e da classe de fábrica específica, aumentando assim a abstração do sistema e tornando o código mais difícil de entender.
  3. Carga de trabalho de código adicional é necessária: O padrão de fábrica precisa definir interfaces de fábrica e classes de fábrica concretas, bem como classes de produto abstratas e classes de produto concretas.A definição dessas classes requer carga de trabalho de código adicional.

1.4 Cenários aplicáveis

  • Como um padrão de criação, ele pode ser usado sempre que objetos complexos precisam ser criados. Observe que objetos simples não precisam usar o padrão de fábrica para evitar a complexidade do sistema.
  • Cenários em que os objetos precisam ser criados dinamicamente e os objetos criados têm uma interface comum ou classe base.
  • Como um método de desacoplamento típico, é usado quando é necessário reduzir o acoplamento do sistema e aumentar a flexibilidade do sistema.
  • Cenários em que a lógica de criação precisa ser ocultada dos clientes.

2. Caso de Realização

Aqui, uma fábrica de frutas é implementada por meio do padrão de método de fábrica, que produz dois tipos de frutas: frutas e bananas.

2.1 Interface de fábrica e implementação

//定义水果工厂接口
public interface FruitFactory {
    
    
    public Fruit createFruit();
}

//定义生产苹果的工厂
public class AppleFactory implements FruitFactory{
    
    
    @Override
    public Fruit createFruit() {
    
    
        return new Apple();
    }
}

//定义生产香蕉的工厂
public class BananaFactory implements FruitFactory{
    
    
    @Override
    public Fruit createFruit() {
    
    
        return new Banana();
    }
    
}


2.2 Interface do produto e sua implementação

//水果的接口
public interface Fruit {
    
    
    public void printPrice();
}

//苹果实体类
public class Apple implements Fruit{
    
    
    @Override
    public void printPrice() {
    
    
        System.out.println("Apple: $12");
    }
}
//香蕉实体类
public class Banana implements Fruit{
    
    
    @Override
    public void printPrice() {
    
    
        System.out.println("Banana: $12");
    }
}

2.3 Teste

public class Test {
    
    
    public static void main(String[] args) {
    
    
        //生产一个Apple
        FruitFactory appFactory=new AppleFactory();
        Fruit fruit=appFactory.createFruit();
        fruit.printPrice();
    }
}

3. Resumo

Bem, queridos leitores e amigos, depois de estudar esta postagem no blog, acredito que você tenha uma compreensão mais profunda do padrão de método de fábrica Java. O padrão Factory Method é um padrão de projeto muito prático, que pode nos ajudar a separar a criação e o uso de objetos, além de melhorar a escalabilidade e a manutenibilidade do código. Espero que você possa usar esse padrão de design com flexibilidade em sua programação diária para escrever um código mais elegante.

Obrigado por ler, se você acha que este artigo é útil para você, compartilhe-o com mais amigos, vamos aprender e progredir juntos!


A criação não é fácil, seu apoio e incentivo é a maior motivação para minha criação.

Acho que você gosta

Origin blog.csdn.net/qq_36756227/article/details/130450042
Recomendado
Clasificación