java Guicestyle服务定位器
是否有人见过/试图编写使用Guice样式配置系统的服务定位器模式
目前我有一个GWT项目(碰巧使用了GWT-RPC),它使用了一个命令模式,其中我的RPC servlet如下所示
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的类应该委托给TransactioNService的另一个实现
有什么想法吗?我正在考虑向HashMap添加条目,其中键是Action的类,值是ServiceImpl的类。我有一个对ServiceImpl类的引用,我可以使用Guice获取TransactionService的实例
# 1 楼答案
看看网络。海关。gwt。派遣服务器gwt调度(http://code.google.com/p/gwt-dispatch/)中的DefaultActionHandlerRegistry类;它完全符合你的建议。以下是存储处理程序的成员变量:
私人最终地图<;类别<;?扩展操作<&燃气轮机>;,ActionHandler<&燃气轮机&燃气轮机;处理者
如果希望在服务器端执行处理程序,则使用gwt调度服务器端组件;如果它是客户端的东西,那么考虑在Debug TraceNoNoReRealRe登记中建模调度类。