Поскольку вы пометили вопрос с помощью DDD - вы, вероятно, ошиблись, если хотите следовать шаблонам тактического проектирования.
StatusDate
, скорее всего, объект значения, а не сущность. Значения объектов должны быть:
- построены атомарно
- неизменяемые
- равны объектам значения того же типа, если он имеет те же свойства
Поэтому, если смоделирован как объект значения, вы должны выполнить проверку на наличие разбираемой даты в конструкторе и выдать исключение или вернуть значение ошибки, если это не так. Кроме того, удалите установщик и внедрите equals / hashcode. Наконец, предложите «проанализированную» или «отформатированную» дату статуса с помощью метода объекта-значения.
Если она изменится, объект-значение в целом должен быть заменен (неизменность)