디자인패턴: Template method 패턴
✔︎ Template method Pattern
- 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바뀌지 않으면서 특정 단계에 수행하는 내역을 바꾸는 패턴
- 전체적으로 동일 부분적으로 다른 코드에서 코드 중복을 최소화
- 동일한 기능을 상위 클래스에 정의 확장/변화가 필요한 부분은 서브 클래스에서 구현
- 상위 클래스(전체적인 알고리즘), 하위 클래스(상세한 내용)
- AbstractClass
- 템플릿 메서드를 정의하는 클래스
- 하위 클래스에 공통 알고리즘을 정의하고 하위 클래스에서 구현될 기능을 primitive 메서드(hook 메서드)를 정의하는 클래스
- ConcreteClass
- 상속 받은 primitive 메서드(hook 메서드)를 구현하는 클래스
- 적합하게 primitive 메서드(hook 메서드)를 오버라이드 하는 클래스
SOLID 관점
SOLID 관점에서 본 템플릿 메서드 패턴
예제 코드
Template method 패턴 예제 코드
참고