Padrão de Projeto-Criação-Padrão de Método de Fábrica

Padrão de método de fábrica

Visão geral

  • Defina uma interface para criar objetos e deixe a subclasse decidir qual classe de produto instanciar

Personagem

  • Função de fábrica abstrata (Criador)
  • Função de fábrica de concreto (criador de concreto)
  • Função abstrata do produto (Produto)
  • Papel do produto concreto

exemplo

from abc import ABCMeta,abstractmethod

class Animal(metaclass=ABCMeta):
    
    @abstractmethod
    def walk(self):
        pass

class Rabbit(Animal):
    def walk(self):
        print("兔子行走")

class Duck(Animal):
    def walk(self):
        print("鸭子行走")

class AnimalFactory(metaclass=ABCMeta):
    @abstractmethod
    def create_animal(self):
        pass

class RabbitFactory(AnimalFactory):
    def create_animal(self):
        return Rabbit()

class DuckFactory(AnimalFactory):
    def create_animal(self):
        return Duck()

vantagem

  • Cada produto específico corresponde a uma classe de fábrica específica, sem necessidade de modificar o código da classe de fábrica
  • Detalhes de implementação de criação de objeto oculto

Desvantagem

  • Cada vez que uma categoria de produto específica é adicionada, uma categoria de fábrica específica correspondente deve ser adicionada

Acho que você gosta

Origin blog.csdn.net/DALAOS/article/details/113179100
Recomendado
Clasificación