3.7.1 정리
- JDBC와 같은 예외가 발생할 가능성이 있으며 리소스 반환이 필요한 코드는 try/catch/finally 블록으로 관리
- 일정한 작업 흐름이 반복되면서 그중 일부만 바뀌는 코드가 존재한다면 전략패턴 적용. 바뀌지 않는 부분은 컨텍스트로, 바뀌는 부분은 전략으로 만들고 인터페이스를 통해 유연하게 전략을 변경할 수 있도록 구성
- 인터페이스를 상속한 자바 클래스가 많아진다면, 클라이언트 메소드에서 직접 전략을 정의 및 제공
- 익명 내부 클래스를 이용해 전략 오브젝트를 구현하면 코드가 간결해짐
- 컨텍스트가 하나 이상의 클라이언트 오브젝트 에서 사용되면 클래스로 분리 해서 여러 클라이언트가 사용할 수 있게 함
- 컨텍스트는 빈으로 등록해서 DI를 받거나, 직접 생성해서(new) 수동 DI를 하면 됨
- 단일 전략 메소드를 가지고, 익명 내부 클래스를 사용하는 패턴은 템플릿/콜백 패턴이라 한다.
- 콜백 코드에서 일정 패턴이 반복되면 콜백을 템플릿에 넣고 재활용
- 템플릿과 콜백의 타입이 다양할 수 있으므로 제네릭스를 이용
- 스프링은 JDBC를 위한 JdbcTemplate를 기반으로 하는 다양한 템플릿과 콜백을 제공함
- 템플릿은 한번에 하나 이상의 콜백을 사용할 수 있고, 하나의 콜백을 여러 번 호출 가능
- 템플릿/콜백을 설계할 때 템플릿과 콜백 사이에 주고받는 정보에 관심을 둬야함
'토비의 스프링 정리' 카테고리의 다른 글
토비의 스프링 - 4.2 예외 전환 (0) | 2022.10.03 |
---|---|
토비의 스프링 - 4.1 사라진 SQLException (0) | 2022.10.02 |
토비의 스프링 - 3.6 스프링의 JdbcTemplate (0) | 2022.09.30 |
토비의 스프링 - 3.5 템플릿과 콜백 (0) | 2022.09.30 |
토비의 스프링 - 3.4 컨텍스트와 DI (0) | 2022.09.30 |