추상 팩토리, 팩토리 메소드, 그리고 템플릿 메소드
팩토리 메소드(Factory Method) 패턴(이하, 팩토리 메소드)은 메소드 레벨이며, 추상 팩토리(Abstract Factory) 패턴(이하, 추상 팩토리)은 클래스 레벨입니다. 팩토리 메소드는 해당 메소드에 포커스를 맞추고 있지만, 추상 팩토리의 경우 클래스들의 관계에 더 신경을 쓰고 있습니다. 흠... 추상 팩토리는 팩토리 메소드의 확장판이라고 생각해도 될 것 같습니다. (정확한 정의는 아닙니다...)

대부분의 추상 팩토리는 팩토리 메소드가 적용되어 있다. 일반적으로 추상 팩토리에는 여러 개의 팩토리 메소드가 있습니다. 왜냐하면 추상 팩토리는 하나의 팩토리 객체에서 여러 개의 객체를 생성하기 위한 패턴이기 때문입니다.

팩토리 메소드는 일반적으로 템플릿 메소드(Template Method) 패턴(이하, 템플릿 메소드)이 적용되지만 반드시 그런 것은 아닙니다. 마찬가지로 추상 팩토리에 템플릿 메소드를 적용할 수도 안할 수도 있습니다.

개인적인 생각으로 팩토리 메소드의 유연성이 중요한 경우 템플릿 메소드를 적용하도록 합니다. 아마도 해당 클래스에는 1(또는 2)개의 팩토리 메소드가 있을 것입니다. 반면 추상 팩토리와 같이 다양한 객체 생성에 주안점을 두고 있다면 굳이 템플릿 메소드 적용해서 복잡하게 가기보다는 단순하고 직관적이게 가는 것이 더 나을 수 있다고 봅니다.
by 키포스 | 2006/06/08 11:46 | 디자인 패턴 | 트랙백 | 덧글(2)
트랙백 주소 : http://kipos.egloos.com/tb/71933
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by BusDriver at 2007/05/30 10:39
간단하면서도 꼭 필요한 점은 모두 담고 있는 좋은 글 인것 같습니다. 제게 가려운 부분을 모두 긇어주신듯.. 감사합니다.
Commented by 키포스 at 2007/05/30 11:09
네~ ^_^

근데... 제대로 정리된 것 맞나요? 저도 오래간만에 보는 거라... ^_^;

:         :

:

비공개 덧글



< 이전페이지 다음페이지 >