Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- 단위테스트
- index
- JDBC
- OOP
- 설정세팅
- DDD
- 클린아키텍처
- Transaction
- MVC요청플로우
- 전전긍긍
- 디스크i/o
- Ajax
- 커뮤니티서버
- 문제선택근거
- TDD
- MVC
- model
- 로그백
- springsecurity
- 냄새라도
- 이벤트핸들러this
- 공통규약
- AOP
- 공통기술
- SEQUENCE
- 이벤트핸들러등록
- string
- SpringLegacy
- JPA
- 사면초가
Archives
- Today
- Total
개발이군고구마
[Spring : Design Pattern] 2. Template Callback (인수 interface) 본문
728x90
1. 개요
- Template method 패턴은 클래스를 만드는 번거로움이 있음
- Abstract Class는 상속을 받기 때문에,
- 인수로 변화하는 클래스를 담을 방법이 있을까?
2. 예시

- 동일한 로직이 반복되고, 특정 부분만 변화가 일어나는 경우에
- 그 변화하는 부분만 따로 인터페이스화 하여, 인수로 넘김
- 인수(인터페이스)는 구현 클래스에서 정의
[Template]
public class CommonTemplate {
public <T> void execute(Callback<T> callback) {
변하지 않는 부분
…
callback.commandHandler(createList, deleteList, updateList, dataList)
}
}
[Callback interface]
변하는 부분을 담당하는 메서드
public interface CallBack<T> {
void commandHandler(List<T> createList, List<T> updateList, List<T> deleteList, List<T> dataList) throws Exception;
}
[Implement Class]
controller
Template 인스턴스 생성 후 -> execute 메서드 실행
인터페이스 구현한 인수를 넘김
templete.execute (dto, new Callback<DTO> (){
// interface 호출 부분 - 변하는 부분에 한해서 해당 메서드 실행됨
@Override
public void commandHandler(List<DTO> createList, List<DTO> updateList, List<DTO> deleteList, List<DTO>dataList) throws Exception {
component.delete(deleteList)
}
})
'SERVER > Spring' 카테고리의 다른 글
| [Spring Security] 타기기에서 자동로그인 기능 풀기 (0) | 2024.10.28 |
|---|---|
| Session 사용 이유와 방법 (0) | 2024.10.27 |
| [Spring : Design Pattern] 1. Template Method (Abstract Class) (0) | 2024.10.02 |
| Thread와 ThreadLocal (0) | 2024.10.02 |
| 데이터는 어떻게 주고 받을까? - 2. 데이터 매핑과 응답 (0) | 2024.09.15 |