在分层软件中汇总来自不同组件的信息的正确方法是什么?

时间:2018-11-11 00:13:42

标签: design-patterns software-design

Internet上有很多有关分层软件设计的信息,但是我找不到一个常见问题的答案:我应该汇总来自不同组件(或实体)的信息,然后从下一层访问同级组件或组件吗?

假设我有以下情况:

业务层:ConsumerBOOrdersBOMessagesBO ... 数据层:ConsumerDAOOrdersDAOMessagesDAO ...

ConsumerBO x ConsumerDAOOrdersBO x OrdersDAO等之间的关系很明显。但是,如果我需要在ConsumersBO上编写一种方法来汇总来自ConsumersDAOOrdersDAOMessagesDAO的信息,我应该通过设置ConsumersBO访问方法来做到这一点是从其同级(例如:OrderBOMessagesBO)还是从下一层的组件(例如:OrdersDAOMessagesDAO)?为什么?

[edit] 由于投票不足而重写了此问题。

1 个答案:

答案 0 :(得分:1)

如果可能,请尝试使您的业务类别取决于他们的兄弟姐妹。这旨在减少层之间的耦合,这始终是一件好事。

请注意,业务层永远不应直接依赖数据层,因为前者比后者更抽象。通常,我们让业务类依赖于由数据层中的类实现的接口。例如,CustomerBO将使用属于业务层的ICustomerDAO接口,而不是属于数据层的具体CustomerDAO类。