템플릿 메서드 패턴은
공통된 처리를 여러 코드에서 사용하고 싶을 때 사용한다.
만약에 A클래스, B클래스, C클래스의 기능 전후에 시간을 로그로 찍고 싶다면
물론 각 기능마다 로그를 찍어도 되지만,
중복이 많아지고
후에 변경이나 삭제를 해야한다면 몇개를 빼먹는다던지, 일관되지 못한 변경이나 실수가 있게 된다.
추상클래스를 활용
추상클래스는 하나 이상의 추상메소드를 가진 클래스이다.
어떤 공통된 기능은 정의해놓고
각자의 기능은 추상클래스를 오버라이딩할 수 있다.
이 경우 A,B,C가 추상클래스를 상속받고,
추상메소드에 A,B,C의 각자의 핵심기능을 정의해 놓고
템플릿메소드에 공통처리와 추상메소드를 부르는 코드를 넣는다.
그리고 각 기능을 실행할 때 템플릿 메소드를 부르면
공통처리와 각각의 핵심코드를 함께 처리할 수 있다.
이렇게 한다면 A,B,C 중 어떤 클래스의 핵심 기능이 변화한다고 해도
공통기능은 변하지 않을 것이고,
반대로 공통기능이 변경이 생긴다해도
공통기능을 정의한 추상클래스의 변경만 있을 뿐
이를 상속받은 A,B,C는 수정하지 않아도 된다.
단일책임원칙을 지킬 수 있게 된 것이다.
728x90
'프로그래밍 > 디자인패턴' 카테고리의 다른 글
| 프록시와 패턴 (0) | 2022.08.12 |
|---|---|
| [디자인패턴] 행위패턴 (0) | 2021.10.31 |
| [디자인패턴] 구조패턴 (0) | 2021.10.31 |
| [디자인 패턴] 생성패턴 (0) | 2021.10.31 |
| [디자인패턴] 개념 (0) | 2021.10.31 |