꿀똥벌레
꿀똥벌레 개발 블로그
꿀똥벌레
전체 방문자
오늘
어제
  • 분류 전체보기 (90)
    • JAVA (17)
    • SPRING (14)
    • Elasticsearch (4)
    • GRADLE (2)
    • HTML, CSS (0)
    • JAVASCRIPT (0)
    • GIT (1)
    • Vue.js (1)
    • server (1)
    • Python (0)
    • IT리뷰 (0)
    • 인프라 (6)
    • IOS (21)
    • 디자인패턴 (20)
    • Kafka (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Index
  • elasticsearch
  • 스프링 인티그레이션
  • KEEPALIVE
  • springintegration
  • mappings
  • 인덱스 템플릿
  • SWIFT
  • maxConnPerRoute
  • ES
  • connectionRequestTimeout
  • persistence connection
  • spring
  • maxConnTotal
  • persistent connection
  • java
  • spring integration
  • 스프링 인테그레이션
  • Index Template
  • 엘라스틱서치

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
꿀똥벌레

꿀똥벌레 개발 블로그

(행동패턴) 템플릿메서드 패턴
디자인패턴

(행동패턴) 템플릿메서드 패턴

2023. 5. 10. 23:07

템플릿메서드 패턴

객체 연산에는 알고리즘의 뼈대만 정의하고, 구체적인 처리는 서브클래스에게 맡기는 패턴

validation체크와 같은 뼈대 로직은 템플릿메서드에 정의하고, 구체 로직은 서브클래스에 맡긴다.

사용시점 및 이유

  • 어떤 알고리즘 중 변하지 않는 부분은 남겨두고, 변하는 부분만 서브클래스에서 정의하도록 남겨두고자 할 때
  • 클래스들의 공통적인 행동을 추출하여 슈퍼클래스에 몰아둠으로써 코드 중복을 피하고 싶을 때

구현

  • 추상 클래스에는 공통 로직인 templateMethod()가 있다.
  • templateMethod() 내부에서 실제 구현인 method1()과 method2() 혹은 hook메서드를 실행한다.
  • hook메서드는 기본적으로 슈퍼클래스에서는 아무것도 가지지 않은 메서드이고, 서브클래스에서 오버라이딩 하여 templateMethod에서 특정 로직을 수행하게 할 수도 있다.
  • hook메서드 에서 boolean을 리턴하도록 정의하고, 서브클래스에서 true, false등을 조작하여 templateMethod 내부 로직을 분기처리 할 수도 있다.
저작자표시 (새창열림)

'디자인패턴' 카테고리의 다른 글

(행동패턴) 비지터(방문자) 패턴  (0) 2023.05.11
(행동패턴) 전략 패턴  (0) 2023.05.10
(행동패턴) 상태 패턴  (0) 2023.05.08
(행동패턴) 옵저버 패턴  (0) 2023.05.08
(행동패턴) 메멘토 패턴  (0) 2023.05.08
    꿀똥벌레
    꿀똥벌레
    개발자 꿀똥벌레 입니다.

    티스토리툴바