본문 바로가기
지식/디자인패턴

Head First Design Patterns : Template Method Pattern

by CodeRain 2024. 1. 29.

Template Method Pattern

  • 알고리즘의 골격을 정의
  • 알고리즘의 구조를 변경하지 않고 자식클래스들이 알고리즘의 특정 단계를 오버라이드 할 수 있도록 하는 패턴

 

구조

  • AbstractClass
    • TemplateMethod 존재.
    • 알고리즘의 단계를 구성하는 메서드들이 선언 되어 있음.
    • 특정 알고리즘을 구현하고 알고리즘은 메서드들의 구체적인 구현으로부터 분리.
  • ConcreteClass
    • Abstract에 선언되어 있는 메서드들을 각필요에 맞게 오버라이드.
    • TemplateMethod는 오버라이드 불가

장점

  • 클라이언트들이 대규모 알고리즘의 특정 부분만 오버라이드 하도록 하여 알고리즘의 다른 부분에 발생하는 변경에 영향을 덜 받게 할 수 있음
  • 중복 코드를 줄일 수 있음.

 

단점

  • 유지가 어려움
  • 일부 클라이언트들은 알고리즘의 제공된 골격에 의해 제한.

 

참조