В проектировании, управляемом доменом, вы, скорее всего, увидите «объекты значений», которые гарантируют, что определенные ограничения будут выполнены во время инициализации, следовательно, в конструкторе самого объекта значения. Так как значения (по соглашению) неизменны в течение их срока службы, вы обычно не включаете сеттеры в их интерфейс.
DTO служат для другой цели, но механически похожи на объекты значений во многих пути. Таким образом, вы можете увидеть проверку в DTO в дополнение к проверке в модели домена.
У вас обычно нет проверки value в ваших сущностях. Сущность, как правило, содержит ссылки на значения (которые проверяют сами себя) или другие локальные сущности (проверенные в другом месте), поэтому проверка правильности ссылок находится в границах (ie, проверка на нулевое значение).