002. Factory Method Pattern (스켈레톤 코드 포함)
Programming/Old 2016. 6. 24. 20:50위키피디앙 따르면 팩토리 메서드 패턴은 아래와 같이 요약할 수 있다.
팩토리 메서드 패턴
- 기반 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴
- 파생 클래스가 어떤 객체를 생성할지 결정하도록 하는 패턴
- 기반 클래스 코드에 구체 클래스 이름을 감추기 위한 방법으로도 사용
- 패턴이 중첩되기 시작하면 굉장히 복잡해질 수 있음
- 상속을 사용하지만 기반 클래스를 전혀 확장하지 않음
템플릿 메서드 패턴의 확장판이라고 봐도 될 듯.
'상속을 사용하지만 기반 클래스를 전혀 확장하지 않음' 이라는 부분에서 확장과 맞물렸을 때, 추상에 대해 제대로 된 이해를 바탕으로 만들어진 패턴이 아니라는 지적도 나온다. 실제로 사용해보니 이 의견도 틀리진 않다고 본다.
이 패턴의 핵심은 '구현 클래스와 연관 관계에 있는 객체들의 유연한 변경을 확보'하는 것이지, '추상 클래스의 객체들의 기능을 확장'하는 측면과는 거리감이 있다.
그래서 이 패턴은 확장 보다는 편의성을 위한 패턴으로 보여지며, 오히려 개발 단계 보다도 유지보수 단계에서 빚을 발하는 패턴이 아닌가 조심스럽게 추측해본다.
아래는 실습한 스켈레톤 코드이다.
Skeleton_FactoryMethodPattern.zip
'Programming > Old' 카테고리의 다른 글
#Visual Studio 2015 환경에서 OpenCV 설치 (2) | 2016.11.05 |
---|---|
003. Template Method Pattern (2) | 2016.06.27 |
002. C++ 전방선언과 인터페이스 사용 방법 (0) | 2016.06.24 |
004. MS PRISM 정리 (0) | 2016.06.16 |
003. WPF / PlaceHolder, Hint, Watermakr가 적용된 TextBox, PasswordBox (3) | 2016.05.26 |