기반 클래스는 깨지기 쉽기 때문에 구현 상속 기반의 프레임워크 역시 깨지기 쉽다.
그러므로 Template Method Pattern은 가능한 절제해 사용해야 한다
그림 2-1과 같은 구현 상속 기반 아키텍처에서 새로운 키 매핑을 모든 에디터에서 지원하려면 기존의 클래스(Editor, CustomerEditor, EditableTextControl, StandaloneEditor 등)를 상속하는 클래스 (NewEditor, NewCustomerEditor, NewEditableTextControl, NewStandaloneEditor)를 일일이 만들어주어야 한다. 결과적으로 클래스의 숫자가 배로 늘어나고 개발 기간도 길어지게 된다.
Factory Method 패턴은 파생클래스가 어떤 객체를 생성할지를 결정하도록 한다.
Factory Method 패턴은 Template Method 패턴의 생성 패턴 버전(구현상속이용)
이라 할 수 있다.
Strategy 패턴 들은 Factory method 패턴의 멋진 대안이(인터페이스 상속이용) 된다.
Factory Method 패턴은 Extends 관계를 잘못 사용하고 있다. 파생클래스가 기반 클래스에 아무런 기능도 추가하지 않기 때문이다.
Holub on 실용주의 디자인패턴의 책 내용을 공부하며 정리한 내용입니다.
저자나 역자에게 문제를 일으킨다면 삭제하겠습니다.