Я создаю приложение MVC с Zend Framework. Модель включает в себя отдельные слои домена и картографа, а слой службы находится сверху.
Для некоторых из моих объектов домена, когда я создаю новый экземпляр, мне нужно создать другие объекты домена, которые состоят из первого объекта. Например, когда я создаю новый объект «Организация», я могу добавить объект «Сотрудник» (на основе текущего пользователя) и объект «Местоположение» (на основе местоположения текущего пользователя).
До сих пор я создавал их в конструкторе родительского объекта (в данном случае — организации). Это нормально, однако создает ненужные зависимости между организацией и ее дочерними элементами.
Я бы предпочел создать дочерние элементы на уровне службы, но не навлеку ли я на себя неприятности, если сделаю это?
Прочитав главу Мартина Фаулерса (POEAA) об уровне обслуживания, я думаю, что все сводится к тому, является ли это логикой предметной области или логикой приложения/рабочего процесса. Мне кажется, что это погранично... (Обратите внимание, что мой сервисный слой уже больше, чем просто фасад).