문제

Guice 스타일 구성 시스템을 사용하는 서비스 로케이터 패턴을보고/작성하려고 시도한 사람이 있습니까?

현재 GWT 프로젝트 (GWT-RPC를 사용하는 것)가 있습니다.

public interface TransactionService extends RemoteService {

    <T extends Response> T execute(Action<T> action);
}

현재 실행 방법의 구현에서 나는 이것을한다 ...

if(action instanceof SomeActionImpl){
  doSomeActionImpl((SomeActionImpl)action);
}else if(action instanceof SomeActionImpl2){
  doSomeActionImpl2((SomeActionImpl2)action);
}

내가하고 싶은 것은 거인 IF 진술을 제거하는 방법을 찾는 것입니다. ActionIMPL1의 클래스가 다른 트랜잭션 서비스의 다른 구현에 위임되어야한다는 등록하는 방법이 필요합니다.

어떤 아이디어? 키가 액션 클래스이고 값은 ServicePlp의 클래스 인 해시 맵에 항목을 추가 할 생각이었습니다. 하나는 ServiceMPL 클래스를 참조하여 Guice를 사용하여 TransactionService의 인스턴스를 얻을 수 있습니다.

도움이 되었습니까?

해결책

GWT-DISPATCH의 net.customware.gwt.dispatch.server.DefaultActionHandlerRegistry 클래스를 살펴보십시오.http://code.google.com/p/gwt-dispatch/); 그것은 당신이 제안하는 것을 정확하게 수행합니다. 다음은 처리기를 저장하는 회원 변수입니다.

개인 최종지도 u003CClassu003C? extends Actionu003C?> >, ActionHandleru003C?, ?> > 핸들러;

서버 측에서 핸들러를 실행하려면 GWT-Dispatch 서버 측 구성 요소를 사용하십시오. 클라이언트 측 제품 인 경우 DefaultActionHandlerRegistry에서 디스패치 클래스를 모델링하는 것을 고려하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top