Если сводится к существенному различию, идентичность имеет значение для сущностей, но не имеет значения для объектов-значений. Например, чье-то Имя - это объект-значение. Сущность Customer может состоять из имени клиента (объект значения), List <Order> OrderHistory (список сущностей) и, возможно, адреса по умолчанию (обычно объекта значения). Сущность клиента будет иметь идентификатор, и каждый заказ будет иметь идентификатор, но имя не должно; в любом случае в объектной модели идентичность адреса, вероятно, не имеет значения.
Объекты значений обычно могут быть представлены как неизменяемые объекты; изменение одного свойства объекта значения по существу разрушает старый объект и создает новый, потому что вас не так заботит идентичность, как контент. Правильно, метод экземпляра Equals для Name будет возвращать «true», если свойства объекта идентичны свойствам другого экземпляра.
Однако изменение некоторого атрибута объекта, такого как Customer, не уничтожает клиента; Сущность Customer обычно изменяема. Идентификатор остается прежним (по крайней мере, после сохранения объекта).
Вы, вероятно, создаете объекты-ценности, даже не осознавая этого; Каждый раз, когда вы представляете какой-либо аспект сущности, создавая детальный класс, у вас есть объект значения. Например, класс IPAddress, который имеет некоторые ограничения на допустимые значения, но состоит из более простых типов данных, будет объектом значения. EmailAddress может быть строкой или объектом значения со своим собственным набором поведения.
Вполне возможно, что даже элементы, у которых есть идентификация в вашей базе данных, не имеют идентичности в вашей объектной модели. Но самый простой случай - это сочетание некоторых атрибутов, которые имеют смысл вместе. Вы, вероятно, не захотите иметь Customer.FirstName, Customer.LastName, Customer.MiddleInitial и Customer.Title, если можете объединить их как Customer.Name; к тому времени, когда вы подумаете о постоянстве, они, вероятно, будут иметь несколько полей в вашей базе данных, но вашей объектной модели все равно.