我刚刚掌握了GWTP和MVP, GIN和Dispatch。
对于分派,有一个Handler类,它定义动作做什么,并相应地返回一些东西。
到目前为止,我发现自己有一个情况下,我有2个行动,需要执行相同的方法。我认为ActionHandling不是业务逻辑去的地方,但它应该在它后面的一个层,以某种方式传递一些东西给它
我应该如何布局我的逻辑?顺便说一句,我想以后使用Hibernate。
编辑:作为一个提示,应用在练习中提供的答案,需要做的是:
1。-创建一个扩展AbstractModule的模块类,它包含
bind(Service.class).to(ServiceImpl.class);
2。-在你的GuiceServletcontextListener中添加你的serviceModule到getInjector方法return:
return Guice.createInjector(new ServerModule(), new DispatchServletModule(), new ServiceModule());
3。-在你的actionHandlers构造函数有这样的东西
@Inject
TestHandler(Service service) { this.service=service }
业务逻辑应该在您的业务对象中,它独立于您的Handler类。尝试以与技术无关的方式设计业务层。处理程序将所有重要的处理委托给业务对象,因此它们(处理程序)实际上应该非常精简。
您可以尝试将服务层注入到处理程序中。该服务可以作为单例创建。
@Inject
public MyHandler(MyService service) {
this.service = service;
}
MyService是一个接口吗?如果是,你忘记在Guice中绑定它了。
我个人使用dao将我的逻辑放在ActionHandlers和我的持久化框架(hybrid, Objectify, Twig-Persist等)之间