객체를 만들어내는 부분을 서브 클래스(SUB-CLASS)에 위임하는 패턴
즉 new 키워드를 호출해 객체를 생성하는 역할을 서브 클래스에 위임하는 것입니다. 결국 팩토리 메소드 패턴은 객체를 만들어내는 공장을 만드는 패턴이라 할 수 있습니다.
팩토리 메소드 패턴에서는 인스턴스를 만드는 방법을 상위 클래스 측에서 결정하지만 구체적인 클래스명 까지는 결정하지 않습니다.
구체적인 내용은 모두 하위 클래스 측에서 수행합니다. 따라서 인스턴스 생성을 위한 골격(framework)과 실제의 인스턴스 생성의 클래스를 분리해서 생각할 수 있습니다.
팩토리 메소드 패턴에서는 서브 클래스에서 객체 생성을 결정한다. 수퍼 클래스에서 사용할 객체의 인스턴스를 서브 클래스의 팩토리에서 생성하여 반환하는 것이다.
간단한 팩토리는 별개의 팩토리 객체를 생성한다. 팩토리 메소드 패턴은 서브 클래스에 팩토리 메소드를 두기 때문에 강력한 유연성을 지닌다. 생성하는 제품을 언제든 서브 클래스로 확장하여 제공하고 마음대로 변경할 수 있기 때문이다.
객체 생성을 한 곳에 모아놓고 체계적으로 관리할 수 있다.
의존 역전 원칙(DIP)에 따라 구체적인 것이 아니라 추성적인 것에 의존하는 설계를 할 수 있다.