템플릿 메소드 패턴과 마찬가지로 상속을 통해 기능을 확장하게 하는 패턴이다. 그래서 구조도 비슷하다 


슈퍼클래스 코드에서는 서브클래스에서 구현할 메소드를 호출해서 필요한 타입의 오브젝트를 가져와 사용한다.

이 메소드는 주로 인터페이스 타입으로 오브젝트를 리턴하므로 서브클래스에서 정확히 어떤 클래스의 오브젝트를 만들어 리턴할지는 슈퍼클래스에서는 알지 못한다 사실 관심도 없다.


서브클래스는 다양한 방법으로 오브젝트를 생성하는 메소드를 재정의 할 수 있다. 


이렇게 서브클래스에서 오브젝트 생성 방법과 클래스를 결정할 수 있도록 미리 정의해둔 메소드를 팩토리 메소드라고 하고 

이 방식을 통해 오브젝트 생성 방법을 나머지 로직, 즉 슈퍼클래스의 기본 코드에서 독립시키는 방법을 팩토리 메소드 패턴이라고 한다.


자바에서 오브젝트를 생성하는 기능을 가진 메소드를 팩토리 패턴이라고 부르기도 한다. 의미가 다르므로 혼동X


참고- 토비의 스프링3.0

'JAVA > 디자인 패턴' 카테고리의 다른 글

탬플릿 메소드 패턴  (0) 2013.07.25
디자인 패턴  (2) 2013.07.25