본문으로 바로가기

토비의 스프링3 리팩토링하기 정리 - 제3장 템플릿과 콜백




반복 되는 내용은 ps(preparedStatement) 오브젝트를 받아 처리한다.


1.Interface만들고

2.Interface를 구현한 Local Callback Class를 만든다.

Callback Class는 parameter로 넘어가서 기능을 수행하고 결과값을 돌려주는 내부 Class이다.



deleteAll()은 ps를 Statement와 Templete으로 분리한다.



public PreparedStatements statementStrategy(Connection c);

//connection을 받아서 PreparedStatements를 return함


ps만드는 애를 interface를 구현한 inner class로 만들 경우의 장점은 ps를 만드는 방법을 어떻게 해도 상관이 없다는 것이다. deleteAll()에서는 그냥 만들면 되지만 add(User user)일 때는 User object를 사용 해서 만들어야 하는데 Interface는 Connection을 받아서 ps만 return하면 되기 때문에 user의 값을 사용 해도 무방한 것이다.



PreparedStatements 만드는 것과 jdbcContext의 분리




3.5 탬플릿과 콜백

전략 패턴의 기본 구조에 익명 내부 클래스를 사용하는 방식을 '템플릿/콜백' 패턴이라고 한다.


BufferedReaderCallback -> BufferedReader를 받아서 어떤 작업을 처리하는 Callback

LineCallback -> Line을 받아서 어떤 작업을 처리하는 Callback










댓글을 달아 주세요