服务层对象可以“服务”DAO层对象吗?

时间:2012-10-14 18:51:45

标签: java

服务层对象可以“服务”DAO层对象吗?或者这是否违反了正确分层架构的完整性?

如,

class MyService {

}

class MyDao {
     private MyService myService;
}

2 个答案:

答案 0 :(得分:3)

我不会这样做。 DAO应该处理数据库;服务管理其他服务和DAO以完成其用例。让服务调用DAO和所需的任何其他服务会更好。

您可能会因此安排存在循环依赖性。

答案 1 :(得分:0)

使用DAO对象构造服务的标准方法是让服务封装DAO。

public class Service {
    private DAO dao;
}
public class DAO {}

这有助于例如让服务封装多个DAO对象,或者在服务中提供诸如事务划分之类的附加逻辑。