디자인 패턴 생성 공장 방법 패턴

공장 방법 패턴

개요

  • 개체를 만들기위한 인터페이스를 정의하고 하위 클래스가 인스턴스화 할 제품 클래스를 결정하도록합니다.

캐릭터

  • 추상 공장 역할 (크리에이터)
  • 콘크리트 공장 역할 (콘크리트 생성자)
  • 추상 제품 역할 (제품)
  • 구체적인 제품 역할

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()

이점

  • 각 특정 제품은 특정 팩토리 클래스에 해당하므로 팩토리 클래스 코드를 수정할 필요가 없습니다.
  • 숨겨진 개체 생성 구현 세부 정보

불리

  • 특정 제품 카테고리가 추가 될 때마다 해당하는 특정 공장 카테고리를 추가해야합니다.

추천

출처blog.csdn.net/DALAOS/article/details/113179100