我掌握了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 }
答案 0 :(得分:2)
业务逻辑应该在您的业务对象中,这些对象独立于您的Handler类。尝试以与技术无关的方式设计业务层。 处理程序将所有重要的处理委托给业务对象,因此它们(处理程序)实际上应该非常薄。
答案 1 :(得分:1)
您可以尝试将服务层注入处理程序。该服务可以创建为单身。
@Inject
public MyHandler(MyService service) {
this.service = service;
}
答案 2 :(得分:0)
MyService是一个界面吗?如果是的话,你忘了把它绑在Guice里面。
Personnaly我使用DAO将我的逻辑放在ActionHandlers和我的持久性框架之间(Hybernate,Objectify,Twig-Persist等)