-
[ GoF] 템플릿 메서드 패턴(Template Method Pattern)Gof Design Pattern 2021. 12. 4. 13:40
템플릿 메서드 패턴(Template Method Pattern)
템플릿 메서드 패턴이란?
상위 클래스(abstract class)에서 전반적인 흐름을 구현하고 하위 클래스에서 이를 상속받아 구체적인 처리를 하도록 위임하는 패턴이다.
템플릿 메서드 패턴 왜 사용할까?
오퍼레이션에 알고리즘(단계)의 기본 골격 구조를 정의하고 구체적인 단계는 하위 클래스에 정의한다. abstract 메서드를 통해서 알고리즘(단계)의 일부 단계를 정의함으로써 템플릿 메소드의 처리순서를 정할 수 있다.
템플릿 메서드를 사용하게 되면
- 템플릿 메서드를 통해 코드 재사용을 할 수 있다.
- 프레임워크에서 가장 많이 사용되는 패턴 중 하나 이다.
- 클래스의 공통부분을 분리할 수 있다.
- 템플릿 메서드에서 사용하는 오퍼레이션들
- ConcreteClass 오퍼레이션이나 클라이언트 클래스에 정의된 오퍼레이션
- AbstractClass 에 정의된 오퍼레이션 중 구체적인 알고리즘을 가지고 있는 오퍼레이션 : final을 선언하여 재정의 할 수 없게 한다.
- 기본 오퍼레이션으로 추상화된 오퍼레이션 : abstract 메서드를 말함.
- 훅 오퍼레이션 : 상위 클래스에서 빈 메서드를 정의함. 필요한 경우 하위 클래스에서 재정의 하여 사용할 수 있다.
클래스 다이어그램
객체 협력
- AbstractClass 하위 클래스에서 반드시 구현해야 하는 알고리즘 처리 단계 내의 기본 오퍼레이션이 무엇인지를 정의한다. 하위 클래스에서 이들 오퍼레이션들을 구현한다.
- ConcreteClass 상위 클래스의 abstract 메서드를 구현하거나 구현된 메서드를 재정의(@Override)한다
코드보기 Click!
'Gof Design Pattern' 카테고리의 다른 글
[GoF]전략 패턴(Strategy) (0) 2021.12.10 [GoF] 팩토리 메서드 패턴(Factory Method Pattern) (0) 2021.12.05 [GoF] 빌더 패턴(Builder Pattern) (0) 2021.12.03 [GoF] 추상 팩토리 , Abstract Factory (0) 2021.09.06 [GoF] 프로토타입 패턴, Prototype pattern (0) 2021.09.03