Diseño patrón-creación-tipo-patrón de fábrica simple

Patrón de fábrica simple

Visión general

  • No exponga directamente los detalles de implementación de la creación de objetos al cliente, pero use una clase de fábrica para ser responsable de crear instancias de la clase de producto.

Personaje

  • Rol de fábrica (creador)
  • Función del producto abstracto (producto)
  • Producto de hormigón (producto de hormigón)

ejemplo

example: 最简单实现,旨在理解一些设计模式概念
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:
    def create_animal(self, animal_type):
        if animal_type == "rabbit":
            return Rabbit()
        if animal_type == "duck":
            return Duck()
        return None

ventaja

  • Detalles de implementación de la creación de objetos ocultos
  • El cliente no necesita modificar el código.

Desventaja

  • Violar el principio de responsabilidad única, integrar la lógica de creación en una clase de fábrica.
  • Violación del principio de apertura y cierre, el código de fábrica debe modificarse al agregar nuevos productos

Supongo que te gusta

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