일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- JDK
- 백준
- 코딩테스트
- React
- spring boot
- Project
- 자취
- 팀프로젝트
- gradle
- 공유DB
- IntelliJ
- jdk11
- 자바
- 스프링
- coding test
- SpringBoot
- Java
- javascript
- 디자인패턴
- Controller
- MariaDB
- 코테
- JPA
- MVC
- 취준생
- AWS
- 입출력
- spring
- 프로젝트
- ps
Archives
- Today
- Total
Tech Collection
[Design Pattern] Template Method Pattern 본문
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 |