티스토리 뷰
JAVA/Design_Pattern
[Design_Pattern] 템플릿 콜백 패턴(Template Callback Pattern)
realizers 2021. 6. 30. 22:35728x90
반응형
템플릿 콜백 패턴(Template Callback Pattern)이란?
- 템플릿 콜백 패턴은 전략 패턴의 변형으로, 스프링 3대 프로그래밍 모델 중 하나인 DI(의존성 주입)에서 사용하는 특별한 형태의 전략 패턴입니다.
템플릿 콜백 패턴은 전략 패턴과 모든 것이 동일한데 전략을 익명 내부 클래스로 정의해서 사용한다는 특징이 있습니다.
원래 기존 전략패턴에서 필요했던 구체클래스들은 StrategyGun.java, StrategyBow.java, StrategySword.java 였지만, 앞서 말했듯 익명 내부 클래스를 사용하기 때문에 필요가 없습니다.
위 코드는 자세히 보면 Client.java에서 콜백을 통한 내부 익명 클래스 재정의를 하는 모습이 보입니다.
Client.java에서 중복되는 부분을 컨텍스트로 이관하여 리팩토링을 진행하겠습니다.
Solider 클래스 안에 콜백을 구현함으로써 Client쪽 소스가 깔끔해 졌습니다. 위와 같은 코드는 많이 사용하니 반드시 이해하고 알아둬야 합니다. 이렇듯 탬플릿 콜백 패턴(Template Callback Pattern)은 내부 익명 클래스를 가미한 전략 패턴이라고 생각하시면 됩니다. 마지막으로 탬플릿 콜백 패턴(Template Callback Pattern)은 OCP, DIP가 적용된 설계 패턴입니다.
참고 - 스프링 입문을 위한 자바 객체지향의 원리와 이해
728x90
반응형
'JAVA > Design_Pattern' 카테고리의 다른 글
[Design_Pattern] 프로토 타입 패턴 (0) | 2022.02.28 |
---|---|
[Design_Pattern] 빌더 패턴 (0) | 2022.02.21 |
[Design_Pattern] 전략 패턴(Strategy Pattern) (0) | 2022.02.17 |
[Design_Pattern] 템플릿 메서드 패턴 (0) | 2022.02.16 |
[Design_Pattern] 싱글톤패턴 방식의 주의점 (0) | 2021.04.05 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- pipe and filter architecture
- redis sorted set
- 트랜잭셔널 아웃박스 패턴 스프링부트
- spring boot 엑셀 다운로드
- spring boot redisson 분산락 구현
- spring boot poi excel download
- JDK Dynamic Proxy와 CGLIB의 차이
- @ControllerAdvice
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- service based architecture
- 공간 기반 아키텍처
- 레이어드 아키텍처란
- redis 대기열 구현
- spring boot excel download paging
- 자바 백엔드 개발자 추천 도서
- java ThreadLocal
- spring boot redis 대기열 구현
- pipeline architecture
- spring boot redisson sorted set
- 람다 표현식
- java userThread와 DaemonThread
- redis sorted set으로 대기열 구현
- polling publisher spring boot
- 서비스 기반 아키텍처
- microkernel architecture
- transactional outbox pattern
- space based architecture
- spring boot excel download oom
- transactional outbox pattern spring boot
- spring boot redisson destributed lock
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함