템플릿 메소드 패턴
"어떻게 실행할지는 부모가 정하고, 무엇을 할지는 자식이 정한다” 패턴, 알고리즘의 템플릿(틀)을 만듦
1. 추상 클래스 정의 (템플릿 메소드 정의된)
abstract class DataParser {
parse(): void {
this.readData()
if (this.useCache()) {
this.loadFromCache()
}
this.processData()
this.saveData()
}
// 구상 메소드(공통 로직)
protected readData(): void {
console.log('Data 읽기')
}
protected saveData(): void {
console.log('Data 저장')
}
protected loadFromCache(): void {
console.log('캐시에서 Data 로드')
}
// 추상 메소드(알고리즘에서 각기 다른 부분)
protected abstract processData(): void
// 후크 메소드 (선택적 오버라이드)
protected useCache(): boolean {
return false
}
}2. 하위 클래스 정의
3. 클라이언트 코드
Last updated