정의
객체를 직접적으로 생성하지 않고 객체 생성을 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하는 패턴입니다.
UML
장단점
- 장점
- 생성자와와 소비자 간의 긴밀한 결합을 피합니다.
- 단일 책임 원칙.
제품 생성 코드를 프로그램의 한 위치로 이동하여 코드를 더 쉽게 지원할 수 있습니다.
- 개방/폐쇄 원칙.
기존 클라이언트 코드를 손상시키지 않고 프로그램에 새로운 유형의 제품을 도입할 수 있습니다.
- 단점
- 패턴을 구현하기 위해 많은 새 하위 클래스를 도입해야 하므로 코드가 더 복잡해질 수 있습니다.
참고