본문 바로가기

Java

디자인 패턴4 - 템플릿 메소드 패턴이란(Template method pattern)

템플릿 메소드 패턴이란?

이것도 뜻만 살펴 보면

템플릿? 뭔가 양식을 정해놓고

메소드? 함수를 이용하는

패턴일까 싶다.


어떤 작업을 처리하는 방식은 서브 클래스로 빼두어서 구조는 바뀌지 않고 특정 수행하는 내역을 바꾸는 패턴이라고 한다. 


템플릿 메소드 패턴 예제

자동차 시동에 관한 것을 예제로 들겠다.

1. 모터가 돌고
2.불이 들어오고
3. 등등등

이 상황에서 현대차와 BMW 자동차를 구현해야 한다면?

아무 생각 없이 구현한다면

현대차 클래스에 boot() { .// 1,2,3 동작 } 

BMW차 클래스에 boot() {.// 1,2,3 동작 }

이런식을 할 것이다.

이렇게 구현이 되면 중복된 코드가 발생한다! 

하지만 1번과 같이 구현체만 다르고 전체 동작 방식이 같다면

자동차 클래스를 아래처럼 만들자.

public void boot() {
// 1,2,3
}

protected void 모터돌리자() {
// 현대, BMW 클래스에서 구현
}


이렇게 되면 중복된 코드는 사라져 유지보수가 훨씬 용이해진다.


참고 : https://gmlwjd9405.github.io/2018/07/13/template-method-pattern.html