gpt4 book ai didi

java - Guice 风格的服务定位器

转载 作者:行者123 更新时间:2023-11-30 09:57:51 24 4
gpt4 key购买 nike

有没有人见过/试图编写使用 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 的类应该委托(delegate)给 TransactioNService 的另一个实现。

有什么想法吗?我正在考虑向 HashMap 添加条目,其中键是 Action 的类,值是 ServiceImpl 的类。一是我有一个 ServiceImpl 类的引用,我可以使用 Guice 来获取 TransactionService 的一个实例。

最佳答案

看看 gwt-dispatch ( http://code.google.com/p/gwt-dispatch/ ) 中的 net.customware.gwt.dispatch.server.DefaultActionHandlerRegistry 类;它完全符合您的建议。这是存储处理程序的成员变量:

私有(private)最终 map <类 >, ActionHandler > 处理程序;

如果要在服务器端执行处理程序,请使用 gwt-dispatch 服务器端组件;如果它是客户端的东西,那么考虑在 DefaultActionHandlerRegistry 上为您的调度类建模。

关于java - Guice 风格的服务定位器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1429901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com