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



互联网上有很多关于分层软件设计的信息,但我找不到一个常见问题的答案:我应该聚合来自不同组件(或实体(的信息,而不是来自下层的同级组件或组件吗?

假设我有以下场景:

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

ConsumerBO×ConsumerDAOOrdersBO×OrdersDAO等之间的关系是明确的。但是,如果我需要在ConsumersBO上编写一个方法来聚合来自ConsumersDAOOrdersDAOMessagesDAO的信息,我应该通过使ConsumersBO从其同级(例如:OrderBOMessagesBO(或从下层的组件(例如:OrdersDAOMessagesDAO(访问方法来实现吗?为什么?

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

如果可能的话,尽量让您的业务类依赖于它们的兄弟类。这旨在减少层之间的耦合,这总是一件好事。

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

最新更新