디자인 패턴/행위 패턴
Template Method 패턴
언린이
2021. 11. 9. 09:17
Template Method 패턴은 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화하여 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 변경하는 패턴입니다.
구조
- AbstractClass
- 템플릿 메서드를 정의하는 클래스입니다.
- 서브 클래스의 공통 알고리즘을 정의하고 서브 클래스에서 구현될 기능을 primitive 메서드로 정의합니다.
- ConcreteClass
- 상속받은 primitive 메서드 또는 hook 메서드를 구현하는 클래스입니다.
- 슈퍼 클래스에 구현된 템플릿 메서드의 일반적인 알고리즘 흐름에서 서브 클래스의 특색에 맞게 primitive 메서드 등을 구현하는 클래스입니다.
활용 상황
- 전체적인 알고리즘의 흐름은 동일하지만 알고리즘의 각 부분에서 구현을 다르게 하고 싶을때 유용합니다.
Template Method 패턴의 장단점
- 장점
- 중복 코드를 줄일 수 있습니다.
- 서브 클래스의 역할을 줄여 핵심 로직의 관리가 용이합니다.
- 코드를 객체지향적으로 구성할 수 있습니다.
- 단점
- 추상 메서드가 많아지면 클래스 관리가 복잡해집니다.
- 클래스간의 관계와 코드가 꼬여버릴 염려가 있습니다.