템플릿 메서드 패턴은 알고리즘의 골격을 정의한다.
이 패턴을 사용하면 알고리즘의 일부 단계를 서브 클래스에서 구현할 수 있으며,
알고리즘의 구조는 그대로 유지하면서 특정 단계를 서브클래스에서 재정의할 수도 있다.
말 그대로 알고리즘의 템플릿(틀)을 만든다.
여러 단계 중 하나 이상의 단계가 추상 메서드로 정의되어 서브 클래스에서 구현된다.
서브클래스가 일부분의 구현을 처리하게 하면서도 알고리즘의 구조는 바뀌지 않는다.
ㅇ 구현 코드
상위클래스
하위클래스1
하위클래스2
클라이언트
출력
ㅇ 장단점
장점
- 코드 재사용성
알고리즘의 공통된 구조는 상위 클래스에서 정의하므로, 코드 중복을 줄이고 재사용성을 높인다. - 확장성
하위 클래스가 특정 단계만 구현하거나 재정의하면 되므로, 새로운 동작을 추가하기 쉽다. - 알고리즘의 구조 보장
알고리즘의 전체 흐름은 상위 클래스에서 정의되어 있으며, 하위 클래스는 이를 변경할 수 없기 때문에 알고리즘의 구조적 일관성을 유지한다. - 유지보수성
공통 로직은 상위 클래스에 집중되어 있어 수정이나 유지보수가 쉽다.
단점
- 클래스 설계 의존성 증가
상위 클래스와 하위 클래스 간의 강한 결합이 발생할 수 있다. - 코드 복잡성 증가
단순한 작업에서도 상속 구조를 요구하기 때문에 코드가 복잡해질 수도 있다. - 유연성 제한
알고리즘의 흐름이 상위 클래스에 고정되어 있어, 전체 흐름을 수정하려면 상위 클래스를 변경해야 한다.
'CS' 카테고리의 다른 글
CS 메세지 큐(Message Queue) (0) | 2024.12.09 |
---|---|
[Design Pattern]팩토리 메서드 패턴 (0) | 2024.11.26 |
[Design Pattern] 싱글톤(Singleton) 패턴 (0) | 2024.11.26 |
CS 알고리즘 시간복잡도 (0) | 2024.10.07 |
CS 오토 스케일링(Auto Scaling)이란 (0) | 2024.09.19 |