엔트리급 엔지니어 요약 디자인 모델 요약2
종지
초보 엔지니어 비망록의 현수막.
※ 출처가 누락된 경우
출처:
https://yamakatsusan.web.fc2.com/pythonpattern08.html
https://dackdive.hateblo.jp/entry/python-design-pattern/abstract-factory
https://www.oreilly.co.jp/books/9784873117393/
factory method 모드 개술
기본 클래스(Creator 클래스)에서 제품 인스턴스 생성을 위한 공장 방법(인스턴스 생성에 사용되는 방법)을 정의하지만, 이 생성 처리가 여러 가지 복잡한 절차가 된 경우, 이 단계는 하위 클래스 측면에서 정의됩니다(template method를 인스턴스 생성에 적용).
(create 방법을director로 다른 클래스에 규정하면builder 모드가 되나요?)
클래스 및 시퀀스
wikipedia 참조
실시 방침
기본 클래스(Creator 클래스)에서 제품 인스턴스 생성을 위한 공장 방법(인스턴스 생성에 사용되는 방법)을 정의하지만, 이 생성 처리가 여러 가지 복잡한 절차가 된 경우, 이 단계는 하위 클래스 측면에서 정의됩니다(template method를 인스턴스 생성에 적용).
(create 방법을director로 다른 클래스에 규정하면builder 모드가 되나요?)
클래스 및 시퀀스
wikipedia 참조
실시 방침
# factory側
class Creator:
def create():
return create_proc1()
@abstractmethod
def create_proc1(self):
pass
@classmethod
def get_creator(cls, some_args):
selected_class = get_class(some_args) # クラスを指定するロジックを記載
return selected_class()
class Creator1(Creator):
def create_proc1(self):
# 実処理を記載
return Product1A(self)
# client側
def main():
creator = Creator.get_creator(choose_some_keywords_for_selecting_cls)
product_1 = creator.create()
abstractfactory와factorymethod의 차이
차이를 잘 몰라서 조사해 보았다
Factory Method 모드와 Abstract Factory 모드의 두 가지 차이
- 생성된 제품 인스턴스의 수량(부품의 수)이 다릅니다(Abstract Factory는 여러 개 생성을 고려하기 쉽습니다)
-abstract Factory는 하위 클래스에서 실례를 생성하고, Factory Method는 기본 클래스에서 실례를 생성합니다.
- Abstract Factory에서는 하나의 Factory로 모든 부품을 만드는 것 같고, Factory Method는 하나의 부품과 하나의 Factory로 대응하는 이미지
- 개인적으로 제품 생성 실례가 있고 생성 처리가 복잡하면 공장 method를 사용하면 실현 횟수가 줄어들 수 있다고 생각해서 사용하고 싶습니다.그 외의 상황이라면 Abstract Factory의 가독성이 더 높다고 생각합니다.(코드를 추적할 때 매번 기본 클래스에 가서 Factory method를 봐야 하기 때문이다.)만약 실례의 생성 방법이 빈번하게 변경될 가능성이 있다면, 최악의create 방법의 덮어쓰기는 억지로 바꿀 수 있기 때문에, 가장 좋은 것은 Factory method...?
이점 및 용도
· 하위 클래스화를 통해 생성된 대상을 확정할 때.
· 클래스가 몇 개의 하위 클래스 중 하나에게 책임을 넘길 때 어떤 하위 클래스에 대한 지식을 국부화하고자 한다.
참조 소스:https://yamakatsusan.web.fc2.com/pythonpattern04.html
Reference
이 문제에 관하여(엔트리급 엔지니어 요약 디자인 모델 요약2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/speedingrenchon/items/a4501c923ef32abb2389텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)