002. Factory Method Pattern (스켈레톤 코드 포함)

Programming/Old 2016. 6. 24. 20:50

위키피디앙 따르면 팩토리 메서드 패턴은 아래와 같이 요약할 수 있다.


팩토리 메서드 패턴

- 기반 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴

- 파생 클래스가 어떤 객체를 생성할지 결정하도록 하는 패턴

- 기반 클래스 코드에 구체 클래스 이름을 감추기 위한 방법으로도 사용

- 패턴이 중첩되기 시작하면 굉장히 복잡해질 수 있음

- 상속을 사용하지만 기반 클래스를 전혀 확장하지 않음


템플릿 메서드 패턴의 확장판이라고 봐도 될 듯.

'상속을 사용하지만 기반 클래스를 전혀 확장하지 않음' 이라는 부분에서 확장과 맞물렸을 때, 추상에 대해 제대로 된 이해를 바탕으로 만들어진 패턴이 아니라는 지적도 나온다. 실제로 사용해보니 이 의견도 틀리진 않다고 본다. 

이 패턴의 핵심은 '구현 클래스와 연관 관계에 있는 객체들의 유연한 변경을 확보'하는 것이지, '추상 클래스의 객체들의 기능을 확장'하는 측면과는 거리감이 있다.

그래서 이 패턴은 확장 보다는 편의성을 위한 패턴으로 보여지며, 오히려 개발 단계 보다도 유지보수 단계에서 빚을 발하는 패턴이 아닌가 조심스럽게 추측해본다.


아래는 실습한 스켈레톤 코드이다.

Skeleton_FactoryMethodPattern.zip


admin