템플릿 콜백 - 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

⚠️ **GitHub.com Fallback** ⚠️