의도
객체를 생성하기 위해 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 서브클래스가 내리도록 합니다.
객체 생성을 Creator 인터페이스를 통해 캡슐화하여 구체클래스가 생성을 대신하게 하는 패턴이다. 객체를 new 연산자를 사용하여 직접 생성하는 것이 아닌 구체 Creator 클래스에서 객체를 생성하는 메서드(팩토리 메서드)를 통해서 객체를 생성하는 것이다.
활용성
- 어떤 클래스가 자신이 생성해야 하는 객체의 클래스를 예측할 수 없을 때
- 생성할 객체를 기술하는 책임을 자신의 서브클래스가 지정했으면 할 때
- 객체 생성의 책임을 몇 개의 보조 서브클래스 가운데 하나에게 위임하고, 어떤 서브클래스가 위임자인지에 대한 정보를 국소화시키고 시을 때