В Интернете много информации о разработке многоуровневого программного обеспечения, но я не смог найти ответ на распространенную проблему: собирать ли мне информацию из отдельных компонентов (или объектов), получая доступ к одноуровневым компонентам или компонентам из уровня ниже?
Предположим, у меня есть следующий сценарий:
Бизнес-уровень: ConsumerBO
, OrdersBO
, MessagesBO
...
Уровень данных: ConsumerDAO
, OrdersDAO
, MessagesDAO
...
Связь между ConsumerBO
x ConsumerDAO
, OrdersBO
x OrdersDAO
и т. Д. Ясна. Но если мне когда-нибудь понадобится написать метод для ConsumersBO
, который агрегирует информацию из ConsumersDAO
, OrdersDAO
и MessagesDAO
, я должен сделать это, сделав ConsumersBO
методы доступа из его братьев и сестер (например: OrderBO
и MessagesBO
) ИЛИ из компонентов на слое ниже (например: OrdersDAO
, MessagesDAO
)? Почему?
[редактировать] переписать этот вопрос из-за отрицательных голосов ..