0

我刚刚掌握了 GWTP 和 MVP、GIN 和 Dispatch。

使用 dispatch 有一个 Handler 类,它定义了动作做什么并相应地返回一些东西。

到目前为止,我发现自己有两个动作需要执行相同的方法。我认为 ActionHandling 不是业务逻辑所在,而是它应该放在它后面的一层,以某种方式传递一些东西给它

我应该如何布局我的逻辑?顺便说一句,我想稍后使用 Hibernate。

编辑:

作为说明,应用实践中提供的答案,需要做的是:

1.- 创建一个扩展 AbstractModule 的模块类,它包含

bind(Service.class).to(ServiceImpl.class);

2.- 在您的 GuiceServletcontextListener 上将您的 serviceModule 添加到 getInjector 方法返回:

return Guice.createInjector(new ServerModule(), new DispatchServletModule(), new ServiceModule());

3.- 在你的 actionHandlers 构造函数上有这样的东西

@Inject
  TestHandler(Service service) { this.service=service }
4

3 回答 3

2

业务逻辑应该在您的业务对象中,它们独立于您的 Handler 类。尝试以与技术无关的方式设计您的业务层。处理程序将所有重要的处理委托给业务对象,因此它们(处理程序)实际上应该非常薄。

于 2011-09-27T08:21:51.317 回答
1

您可以尝试将服务层注入处理程序。可以将服务创建为单例。

@Inject
public MyHandler(MyService service) {
  this.service = service;
}
于 2011-09-27T14:30:36.147 回答
0

MyService 是一个接口吗?如果是,你忘了在 Guice 中绑定它。

我个人使用 DAO 将我的逻辑放在 ActionHandler 和我的持久性框架(Hybernate、Objectify、Twig-Persist 等)之间

于 2011-09-28T05:23:46.010 回答