2012-10-14 48 views
0

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

例如,

class MyService { 

} 

class MyDao { 
    private MyService myService; 
} 
+3

不应该说,它是周围的其他方式?告诉不问按http://c2.com/cgi/wiki?TellDontAsk – RNJ

+0

Hvant阅读DAO/DTO模式? –

回答

3

我不会做它。 DAO应该处理数据库;服务管理其他服务和DAO以履行其使用案例。将服务称为DAO和任何其他需要的服务会更好。

你冒险与这种安排循环依赖。

+1

+1“循环依赖” – Vrushank

0

与DAO对象构建服务的标准方法是让服务封装DAO。

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

这是有用的例如,让一个服务封装多个DAO对象,或者提供额外的逻辑,例如在服务事务划分。