GWT-Platform:业务逻辑应该去哪里?

时间:2011-09-27 08:03:43

标签: gwt dispatch gin gwt-platform

我掌握了GWTP以及MVP,GIN和Dispatch。

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

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

我应该如何布置逻辑?我想稍后在btw上使用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 }

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

@Inject
public MyHandler(MyService service) {
  this.service = service;
}

答案 2 :(得分:0)

MyService是一个界面吗?如果是的话,你忘了把它绑在Guice里面。

Personnaly我使用DAO将我的逻辑放在ActionHandlers和我的持久性框架之间(Hybernate,Objectify,Twig-Persist等)