DDD: что проку от различия между объектами и оценить объекты?

Можно попробовать TeraCopy или RoboCopy.

6
задан koen 23 November 2009 в 19:23
поделиться

1 ответ

Да, очень полезно уметь различать, особенно когда вы проектируете и реализуете свои типы.

Один из Основные отличия заключаются в том, что касается равенства, поскольку сущности должны иметь совершенно иное поведение, чем объекты-значения. Знание того, является ли ваш объект Entity или Value Object, говорит вам, как вы должны реализовать равенство для типа. Это полезно само по себе, но этим не останавливается.

Сущности являются изменяемыми типами (по крайней мере, по концепции). Вся идея сущности заключается в том, что она представляет концепцию домена с известной продолжительностью жизненного цикла (т. Е. Создается, претерпевает несколько преобразований, архивируется и, возможно, в конечном итоге удаляется). Он представляет одну и ту же конкретную «вещь» , даже если проходят месяцы или годы, и при этом меняет состояние.

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

Это также очень помогает при модульном тестировании, когда семантика равенства хорошо известна. В обоих случаях, равенство хорошо определено. Я не знаю, какой язык вы используете, но во многих языках (C #, Java, VB.NET) равенство по умолчанию определяется ссылкой, что во многих случаях не особенно полезно.

10
ответ дан 10 December 2019 в 00:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: