Internet上有很多有关分层软件设计的信息,但是我找不到一个常见问题的答案:我应该汇总来自不同组件(或实体)的信息,然后从下一层访问同级组件或组件吗?
假设我有以下情况:
业务层:ConsumerBO
,OrdersBO
,MessagesBO
...
数据层:ConsumerDAO
,OrdersDAO
,MessagesDAO
...
ConsumerBO
x ConsumerDAO
,OrdersBO
x OrdersDAO
等之间的关系很明显。但是,如果我需要在ConsumersBO
上编写一种方法来汇总来自ConsumersDAO
,OrdersDAO
和MessagesDAO
的信息,我应该通过设置ConsumersBO
访问方法来做到这一点是从其同级(例如:OrderBO
和MessagesBO
)还是从下一层的组件(例如:OrdersDAO
,MessagesDAO
)?为什么?
[edit] 由于投票不足而重写了此问题。
答案 0 :(得分:1)
如果可能,请尝试使您的业务类别取决于他们的兄弟姐妹。这旨在减少层之间的耦合,这始终是一件好事。
请注意,业务层永远不应直接依赖数据层,因为前者比后者更抽象。通常,我们让业务类依赖于由数据层中的类实现的接口。例如,CustomerBO
将使用属于业务层的ICustomerDAO
接口,而不是属于数据层的具体CustomerDAO
类。