디자인 패턴/행위 패턴

Template Method 패턴

언린이 2021. 11. 9. 09:17

Template Method 패턴은 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화하여 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 변경하는 패턴입니다.

 

 

구조

  • AbstractClass
    • 템플릿 메서드를 정의하는 클래스입니다.
    • 서브 클래스의 공통 알고리즘을 정의하고 서브 클래스에서 구현될 기능을 primitive 메서드로 정의합니다.
  • ConcreteClass
    • 상속받은 primitive 메서드 또는 hook 메서드를 구현하는 클래스입니다.
    • 슈퍼 클래스에 구현된 템플릿 메서드의 일반적인 알고리즘 흐름에서 서브 클래스의 특색에 맞게 primitive 메서드 등을 구현하는 클래스입니다.

 

 

활용 상황

  • 전체적인 알고리즘의 흐름은 동일하지만 알고리즘의 각 부분에서 구현을 다르게 하고 싶을때 유용합니다.

 

 

Template Method 패턴의 장단점

  • 장점
    • 중복 코드를 줄일 수 있습니다.
    • 서브 클래스의 역할을 줄여 핵심 로직의 관리가 용이합니다.
    • 코드를 객체지향적으로 구성할 수 있습니다.
  • 단점
    • 추상 메서드가 많아지면 클래스 관리가 복잡해집니다.
    • 클래스간의 관계와 코드가 꼬여버릴 염려가 있습니다.