ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ 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!


    GIT COMMIT 링크!

     

    댓글