템플릿 콜백 - slahsk/study GitHub Wiki
인터페이스 하나를 만들어 구현하여 내부 핵심 로직만 봐꺼서 사용 할수 있다.
public interface MyCallBack<T> {
int call(List<T> list, CommonService<T> service);
}콜백 인터페이스를구현하여 vo 안의 address 값을 삭제 하는 로직이다. 인터페이스로 분리 하기 때문에 전략 적으로 사용이 가능하다.
public class EmptyAddressUpdate implements MyCallBack<TestVO>{
@Override
public int call(List<TestVO> list, CommonService<TestVO> service) {
for(TestVO vo : list){
vo.setAddress("");
}
return service.update(list);
}
}CommonService 라는 interface 를 구현하여 콜백 에서 this 를 넘겨서 로직에 따라 CommonService 을 상황에 맞게 사용할수 있다. insert, update, delete 필요에 맞게 사용할수 있다.
public class MyService implements CommonService<TestVO> {
@Autowired
private EmptyAddressUpdate emptyAddressUpdate;
@Override
public int insert(List<TestVO> list) {
// TODO Auto-generated method stub
return 0;
}
@Override
public int update(List<TestVO> list) {
// TODO Auto-generated method stub
return 0;
}
@Override
public int delete(List<TestVO> list) {
// TODO Auto-generated method stub
return 0;
}
public int myServiceUpdate(List<TestVO> list){
return emptyAddressUpdate.call(list, this);
}
}프로젝트 진행하면 2일동안 고민하여 형식을 구현하여 사용 하였다. https://github.com/slahsk/study/tree/master/sb/src/main/java/study/templatecallback