Зависит от того, хотите ли вы / должны ли вы неукоснительно придерживаться паттерна Boundary-Control-Entity:
- Если да (вам нужно придерживаться шаблона): тогда нет, объект Boundary может говорить только с объектами Control. См. Таблицу внизу на этой странице (также хорошее описание шаблона).
- Если нет: тогда да, может!
Это не значит быть бойким. Сомнительно, что такое строгое разделение является хорошей практикой проектирования. На картинках это выглядит красиво: Граница, Контроль и Сущность в красивых горизонтальных слоях с сообщениями, проходящими только по соседним слоям.
Реальность несколько иная. Строгое разделение может привести к двум проблемам:
- Распространение сквозных методов. Вы намекаете на это. В результате вы получаете объединение методов на контроллерах, которые не делают ничего, кроме как проходят к базовым объектам.
- Классы анемичных сущностей. Вместо того, чтобы сущности были домом для поведения «данные +», они становятся контейнерами данных только при переходе всех поведений на контроллеры. Это не очень хорошая вещь .
Примечательно, что в Domain Driven Design Эрик Эванс рекомендует создавать Сервисы (сродни Контроллерам) только в том случае, если у рассматриваемой логики нет жизнеспособного дома ни в одном из Доменных Классов (Сущностей).