Рассмотрим сценарий, в котором у человека есть набор заданий.Работа может быть прекращена в будущем.Домен вызовет событие «JobEndScheduled» в тот момент, когда в задание будет добавлена дата окончания.Должен ли домен также вызывать событие «JobEnded» во время фактического завершения задания?
Это зависит от того, существует ли ценность для бизнеса, полученная при документировании фактического завершения задания?
много доменов, ответ да: сам факт того, что что-то планируется, отличается от того факта, что что-то произошло.Явное моделирование этих двух фактов значительно упрощает работу остальной части домена.
Рассматривая банковские операции - при просмотре истории транзакций часто различные переводы находятся в состоянии «ожидания»;модель ожидает , что что-то случится, но свидетельство того, что это произошло , еще не пришло.
Часто случается, что будет другоеполномочия для двух событий - планировщика и исполнителя (под любыми именами, которые могут скрываться этими понятиями).
В примере человека / рабочих мест это просто происходит, потому что время истекло.
Время не истекло - время на входе;см. эту идею Джон Кармак
If you don't consider time an input value, think about it until you do -- it is an important concept.
Модель предметной области не контролирует время - реальный мир контролирует время, и, возможно, у вас есть механизм длясообщая модели предметной области, какое время (точнее, что измеряют некоторые эталонные часы).
Так, например, если нам нужно посмотреть расписание в определенном временном окне, мы, вероятно, передадим экстентыэтого временного окна как часть запроса, и получите список запланированных элементов, которые попадают в это окно.
Так работает календарь Google - вы можете вернуться назад и посмотреть на вещи, которые былив вашем календаре в прошлом.