Template Method Pattern
- 알고리즘의 골격을 정의
- 알고리즘의 구조를 변경하지 않고 자식클래스들이 알고리즘의 특정 단계를 오버라이드 할 수 있도록 하는 패턴
구조

- AbstractClass
- TemplateMethod 존재.
- 알고리즘의 단계를 구성하는 메서드들이 선언 되어 있음.
- 특정 알고리즘을 구현하고 알고리즘은 메서드들의 구체적인 구현으로부터 분리.
- ConcreteClass
- Abstract에 선언되어 있는 메서드들을 각필요에 맞게 오버라이드.
- TemplateMethod는 오버라이드 불가
장점
- 클라이언트들이 대규모 알고리즘의 특정 부분만 오버라이드 하도록 하여 알고리즘의 다른 부분에 발생하는 변경에 영향을 덜 받게 할 수 있음
- 중복 코드를 줄일 수 있음.
단점
- 유지가 어려움
- 일부 클라이언트들은 알고리즘의 제공된 골격에 의해 제한.
참조
'지식 > 디자인패턴' 카테고리의 다른 글
| Head First Design Patterns : Composite Pattern (0) | 2024.02.25 |
|---|---|
| Head First Design Patterns : Iterator pattern (0) | 2024.02.25 |
| Head First Design Patterns : Facade Pattern (0) | 2024.01.29 |
| Head First Design Patterns : Adapter Pattern (0) | 2024.01.16 |
| Head First Design Patterns : Command Pattern (0) | 2024.01.14 |