Tech Collection

[Design Pattern] Template Method Pattern 본문

Concept/Design Pattern

[Design Pattern] Template Method Pattern

eee_269 2021. 5. 30. 22:10
728x90
반응형

템플릿 메소드 패턴

  • 메소드에서 알고리즘의 골격 정의
  • 알고리즘의 여러 단계 중 일부는 서브 클래스에서 구현할 수 있다.
  • 알고리즘의 구조는 그대로 유지하면서 서브 클래스에서 특정 단계를 재정의 할 수 있다.
  • superclass가 알고리즘을 정의하고, 단계별로 실행될 메소드 등 로직을 정해놓으면 subclass에게 일부 로직의 구현만을 맡기는 패턴
  • subclass 필수
  • final 선언
  • Hook
    • Optional한 Step을 정의할 수 있다.
    • subclass가 꼭 구현하지 않아도 된다.
    • 보통 아무 로직이 없거나 default 로직이 있다.
    • boolean을 반환하는 hook을 만들어 template method 내의 if문에서 호출하면 조건부 실행 제어가 가능
    • 특정 step의 실행 직전/후에 subclass가 react 할 수 있는 통로로 사용될 수 있음
    • JFrame-paint / Applet-paint
  • 할리우드 원칙
    • ' 먼저 연락하지 마세요, 저희가 연락 드리겠습니다. '
    • 의존성 부패 방지
    • high level 컴포넌트가 low level 컴포넌트의 로직의 호출 타이밍을 정하고, low level 컴포넌트는 단지 로직을 정의하기만 하는 원칙
    • 저수준 구성요소들을 다양하게 사용할 수 있으면서도, 다른 클래스가 그러한 구성 요소에 너무 의존하지 않게 만들어주는 디자인을 구현하기 위한 기법 제공
  • Strategy : 완전한 알고리즘
  • Template Method : 불완전한 알고리즘 (다른 클래스에서 제공해주는 메소드 사용)
728x90
반응형

'Concept > Design Pattern' 카테고리의 다른 글

[Design Pattern] Command Pattern  (0) 2021.05.30
[Design Pattern] Iterator Pattern  (0) 2021.05.30
[Design Pattern] Facade Pattern  (0) 2021.05.30
[Design Pattern] Adapter Pattern  (0) 2021.05.30
[Design Pattern] State Pattern  (0) 2021.05.30