【问题标题】:What would be the best practice when it comes to using multiple injected DAOs在使用多个注入的 DAO 时,最佳实践是什么
【发布时间】:2013-09-11 14:09:28
【问题描述】:

突然间,我正在考虑将我的服务器端任务编写为一项大服务,并在该服务中注入所有 dao 对象 - 如下所示:

public class MyServiceImpl extends RemoteServiceServlet implements MyService {
@Inject 
MyDAO1 myDAO1;
@Inject 
MyDAO2 myDAO2;
@Inject 
MyDAO3 myDAO3;

...
//20  methods
//
}

是一个大服务要走的路还是有其他更好的模式?

【问题讨论】:

  • 我认为这涵盖了它:stackoverflow.com/a/16234079/210445
  • @osh,不,一项大型服务不好,因为它违反了single responsibility principle。您本质上是在创建很难支持的上帝对象。您应该考虑一下您的服务器端层有哪些职责,然后您应该仔细地将这些职责分配给多个服务。

标签: java spring gwt jpa guice


【解决方案1】:

您应该为每个任务“域”构建服务。例如,用于用户管理的服务,其方法允许注册新用户、发送恢复密码电子邮件、暂时禁用用户、获取当前启用的用户列表等。

我建议你看看 Martin Fowler 的 Patterns of Enterprise Application Architecture (http://martinfowler.com/books/eaa.html) 中描述的 ServiceLayer 模式。

服务层定义了应用程序的边界 [Cockburn PloP] 和 从接口的角度来看它的一组可用操作 客户层。它封装了应用程序的业务逻辑, 控制事务和协调响应 执行其操作 (http://martinfowler.com/eaaCatalog/serviceLayer.html)

【讨论】:

    猜你喜欢
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 2011-04-26
    • 2011-08-23
    相关资源
    最近更新 更多