정의
팩토리 메서드 패턴에서는 객체를 생성하기 위한 인터페이스를 정의(모든 팩토리 패턴에서는 객체 생성을 캡슐화 한다)하는데, 서브클래스에서 어떤 클래스를 만들지 결정하게 함으로써 객체 생성을 캡슐화 한다.
팩토리 메서드 패턴을 이용하면 클래스의 인스턴스를 만드는 일을 서브 클래스에게 맡기게 된다.
서브 클래스에서 결정한다는 뜻 :
생산자 클래스가 실제 생산될 제품에 대한 사전지식이 전혀 없어(알고 싶어하지 않고, 사용하고만 싶어 한다) 객체의 생성을 서브 클래스에게 위임하고, 서브 클래스는 어떤 클래스의 인스턴스를 만들지 결정한다.
UseFactoryMethod
: 무엇이 만들어질지 모른다. 타입이 두 가지 있다는 것만 안다. 단지 타입별로 만들기만 한다.
PatternAGenerator
: 팩토리 메서드를 통해 좀비만 여러 마리를 만든다.
PatternBGenerator
: 팩토리 메서드를 통해 좀비와 슬라임을 섞어 만든다.
→ 좀비를 더 많이 만들어야 한다면 PatternAGenerator 팩토리 메서드에서 수정한다. UseFactoryMethod는 수정할 필요가 없다.