* 하위 클래스에서 인스턴스 작성하기
상위클래스에서 처리의 골격을 만들고, 하위 클래스에서 구체적인 처리의 내용을 만들었는데 (Template Method 패턴) 이 패턴을 인스턴스 생성의 장면에 적용한것이 Factory Method 패턴.
인스턴스를 생성하는 공장을 Template Method패턴으로 구성한 것이 Factory Method 패턴.
Factory Method 패턴에서는 인스턴스를 만드는 방법을 상위 클래스 측에서 결정하지만 구체적인 클래스 이름까지는 결정하지 않고 구체적인 내용은 모두 하위 클래스 측에서 수행.
따라서 인스턴스 생성을 위한 골격과 실제의 인스턴스 생성의 클래스를 분리해서 생각할 수 있다.
Product(제품)의 역활
패턴에서 생성되는 인스턴스가 가져야 할 인터페이스를 결정하는 것은 추상 클래스
ConcreteProduct(구체적인 제품)의 역활
구체적인 제품을 결정
Creator(작성자)의 역활 : I Think... 공장
Product역활과 인스턴스 생성의 메소드를 호출하면 Product가 생성되는 역활의 정보를 가진다.
ConcreteCreator(구체적인 작성자)의 역활 : I Think... 무언가를 만드는 공장
구체적인 제품을 만드는 클래스를 결정
* 관련패턴
Template Method 패턴
Factory Method패턴은 Template Method 패턴의 전형적인 응용
Singleton 패턴
Creator역활을 수행하는 클래스는 대부분 Singleton패턴으로 만들 수 있다.
프로그램 안에서 인스턴스가 복수로 존재할 필요는 거의 없기 때문에...
Composite 패턴
Product역활에 Composite패턴을 적용할 수도 있다.
Iterator 패턴
Iterator패턴에서 iterator메소드가 Iterator의 인스턴스를 작성할 때 Factory Method 패턴이 사용되는 경우가 있다.
반응형