GWT平台:业务逻辑应该去哪里?

GWT平台:业务逻辑应该去哪里?,gwt,dispatch,gwt-gin,gwt-platform,Gwt,Dispatch,Gwt Gin,Gwt Platform,我刚刚掌握了GWTP和MVP,杜松子酒和调度 对于dispatch,有一个处理程序类,它定义了操作的作用并相应地返回一些内容 到目前为止,我发现自己遇到了一个案例,其中我有两个操作需要执行相同的方法。为此,我相信ActionHandling并不是业务逻辑的所在,而是它应该在其背后的一层中,以某种方式传递某些信息给它 我应该如何规划我的逻辑?顺便说一句,我想稍后使用Hibernate 编辑: 作为说明,应用实践中提供的答案,需要做的是: 1.-创建一个扩展AbstractModule的模块类,该类

我刚刚掌握了GWTP和MVP,杜松子酒和调度

对于dispatch,有一个处理程序类,它定义了操作的作用并相应地返回一些内容

到目前为止,我发现自己遇到了一个案例,其中我有两个操作需要执行相同的方法。为此,我相信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 }

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

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

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

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

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

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

MyService是一个接口吗?如果是,您忘记将其绑定到Guice中


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

MyService是一个接口吗?如果是,您忘记将其绑定到Guice中


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

我倾向于有一个专用的服务层,非常类似于您对业务对象的概念。服务层做任何繁重的工作(除了我重构成实用程序类的任何可重用的东西…),我试图保持我的处理程序和DAO类都非常精简。你们都是对的,只是不确定我在哪里将服务连接到处理程序,因为我知道我已经用GIN进行了依赖注入,只是不知道如何,尝试上面的答案我倾向于有一个专用的服务层,非常类似于您对业务对象的概念。服务层做任何繁重的工作(除了我重构成实用程序类的任何可重用的东西…),我试图保持我的处理程序和DAO类都非常精简。你们都是对的,只是不确定我在哪里将服务连接到处理程序,因为我知道我已经用GIN进行了依赖注入,只是不知道如何,尝试上面的答案我从来没有想过,那里的构造函数就是为了这个目的,我会试试看,thxOk,不起作用,消息说1)com.test.domain.Service的实现没有绑定。我想我也需要为我的服务做点什么。你能帮我一把吗?我从来没有想过那里的构造函数是用于此目的的,我会尝试一下,thxOk,没有工作,消息说1)com.test.domain.Service的实现没有绑定。我想我也需要为我的服务做点什么。你能帮我一把吗?是的,忘了这么做,混淆了已经绑定的操作,然后绑定了服务是的,忘了这么做,混淆了已经绑定的操作,然后绑定了服务