Недавно у меня была дискуссия с сотрудником, где он настаивал на том, что в объектах, управляемых доменом, не должно быть поведения, которое не изменяет его состояние. По моему опыту, я никогда не слышал об этом ограничении. Действительно ли это правило DDD?Должно ли существо содержать только поведение, которое изменяет состояние?
Чтобы предоставить некоторый контекст (упрощенный сценарий) - в нашем домене есть компьютерный объект, на котором вы можете запускать процессы, наш уровень интеграции фактически делегирует его удаленному физическому компьютеру и запускает там процесс.
Итак, должно ли StartProcess
быть объектом Computer
? Или он должен быть включен в доменную службу, так как он напрямую не влияет на состояние объекта Computer
? (он косвенно изменяет состояние, как только процесс завершен, и данные синхронизируются обратно в нашу систему).
Мне сущность естественным местом для нее, поскольку она следует вездесущему языку, но мне интересно, есть ли у кого-то веские причины против (или других причин).
Я хочу просто упомянуть, что, хотя архитектура, управляемая сообщениями, и CQRS подходят так хорошо DDD, они не требуются – MikeSW
Правда, хотя использование событий домена не означает CQRS/ES. Я должен был быть более ясным. – eulerfx