영권's
디자인 패턴(Creational) - Factory Method 본문
Factory Method Pattern
Factory Method Pattern는 부모(상위) 클래스에 알려지지 않은 구현 클래스를 생성하는 패턴으로 자식(하위) 클래스가 어떤 객체를 생성할지를 결정하도록 하는 패턴입니다.
- Product은 인터페이스를 선언하며, 이 인터페이스는 작성자와 하위 클래스가 생성할 수 있는 모든 개체에 공통적입니다.
- Concrete Product는 제품 인터페이스의 구현입니다.
- Creator 클래스는 새 Product 개체를 반환하는 Factory Method를 선언합니다. 이 메서드의 반환 유형은 Product 인터페이스이어야 합니다.
- 이름과 다르게 Creator의 주된 책임은 Product 생성이 아닙니다. 일반적으로 Creator클래스는 이미 제품과 관련된 몇가지 핵심 비즈니스 로직을 가질 수 있고 Factory Method는 이 로직을 Product 구체 클래스에서 분리하는 데 도움이 됩니다.
- Concrete Creators는 기본 Factory Method를 재정의하여 다른 유형의 제품을 반환합니다.
- 메서드가 항상 새 인스턴스를 생성할 필요는 없습니다.
- 또한 캐시, 개체 풀 또는 다른 소스에서 기존 개체를 반환할 수도 있습니다.
장점
- 생성하는곳과 콘크리트 제품 간의 결합을 피할 수 있다.
- 단일 책임 원칙에 따라 프로그램 내에서 제품 생성 코드를 한 곳으로 이동하여 코드를 더 쉽게 지원할 수 있습니다.
- Open/Closed Principle에 따라 기존 클라이언트 코드를 위반하지 않고 새로운 유형의 제품을 프로그램에 도입할 수 있습니다.
단점
- 패턴을 구현하기 위해 새로운 하위 클래스를 많이 도입해야 하기 때문에 코드가 더 복잡해질 수 있습니다.
- 가장 좋은 시나리오는 패턴을 기존 작성자 클래스 계층에 도입하는 경우입니다.
'스터디 > 디자인 패턴' 카테고리의 다른 글
디자인 패턴(Behavioral) - Visitor (0) | 2021.09.10 |
---|---|
디자인 패턴(Behavioral) - Template Method (0) | 2021.09.02 |
디자인 패턴(Behavioral) - Observer (0) | 2021.08.29 |
디자인 패턴(Behavioral) - Memento (0) | 2021.08.20 |
디자인 패턴(Behavioral) - Iterator (0) | 2021.08.13 |
Comments