템플릿 메소드 패턴이란?
이것도 뜻만 살펴 보면
템플릿? 뭔가 양식을 정해놓고
메소드? 함수를 이용하는
패턴일까 싶다.
어떤 작업을 처리하는 방식은 서브 클래스로 빼두어서 구조는 바뀌지 않고 특정 수행하는 내역을 바꾸는 패턴이라고 한다.
템플릿 메소드 패턴 예제
자동차 시동에 관한 것을 예제로 들겠다.
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
'Java' 카테고리의 다른 글
디자인 패턴6 - 옵저버 패턴(Observer pattern) (0) | 2019.03.08 |
---|---|
디자인 패턴5 - 컴포지트 패턴 ( Composite pattern ) (0) | 2019.03.08 |
디자인 패턴2 - 어댑터 패턴(Adapter Pattern) (0) | 2019.03.04 |
디자인 패턴 1 - 파사드 패턴(facade pattern) (0) | 2019.03.03 |
NIO 제대로 파해쳐보자 (0) | 2017.12.05 |