2015-04-28 2 views
1

Проект, управляемый доменом, различает два типа моделей: объекты и объекты значений. В большинстве примеров атрибуты объекта являются объектами ценности или другими объектами, тогда как атрибуты объекта значения - это в основном простые строки, целые числа и т. Д. (То есть примитивные типы данных).DDD: Может ли сущность иметь атрибуты примитивных типов данных?

Это приводит меня к вопросу: может ли сущность также иметь атрибуты примитивных типов данных? Или вы обычно моделируете каждый атрибут объекта как объекта ценности или другого объекта?

Приведенный ниже пример может служить ответом на этот вопрос: У нас есть объект Comment с атрибутом text. text просто строковая переменная или объект значения?

ответ

1

Хотя общепринятое отношение к составлению сущности других объектов или объектов ценности необязательно. Пожалуйста, помните, что вы должны думать об абстракции. Примитивные типы одобрены, если в их использовании нет бизнес-логики. Например:

public class User { 
    private UserId id; 
    private String nickname; 
    private Date joinDate; 
} 

Как вы можете видеть, прозвище это примитивный тип, потому что мы не можем ничего особенного с никем сделать. С другой стороны, joinDate должен быть Value Object, потому что даты имеют некоторую логику (в сравнении с датами, добавлением, вычитанием и т. Д.)

Даже в «Моделировании, реализующем домены с использованием домена» Вона Вернона, это примеры объектов, состоящих из примитивных типов ,

Смежные вопросы