Должна ли история комментариев быть сущностью, DDD - PullRequest
1 голос
/ 19 апреля 2011


В настоящее время я разрабатываю веб-приложение с использованием методологии DDD. Различая сущности от ценностных объектов, я наткнулся на один такой элемент модели, который я не могу решить поместить в категорию сущностей / VO.

Каждый ордер будет связан с 1 и только 1 объектом истории комментариев, который управляет списком комментариев. Теперь, когда заказ отредактирован, пользователь может добавить комментарий. Это добавляется в историю комментариев.

Комментарий Объект истории как таковой ничего не значит, когда речь идет о стойкости. Я планирую использовать «компонент» nHibernate, поэтому в таблицу ORDER_COMMENTS записывается только список комментариев.

Заказ является сущностью.
Должна ли история комментариев (комментарии различных пользователей, добавляемых к заказу) быть сущностью или виртуальной организацией?

Ответы [ 3 ]

5 голосов
/ 20 апреля 2011

CommentHistory - это сущность.
Потому что вы добавляете комментарии к нему, а не заменяете всю историю каждый раз, когда она меняется.

Это означает, что это модифицируемо.
Если он изменяемый, он должен иметь идентичность, известный «колышек», на котором Вы «зависаете», состояние меняется.
Если он имеет идентичность, которая не зависит от состояния, это сущность :

Организация:
Объект, который не определяется его атрибутами, а скорее потоком непрерывности и его идентичностью.

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

Вот еще один пример:

Предположим, Citizen похоже на комментарий. Граждане "добавляются" к Country. Если бы страна была ценным объектом, каждый раз, когда рождается новый гражданин, нужно было бы восстанавливать всю страну.

1 голос
/ 26 сентября 2011

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

Я имею в виду, если вам нужно комментировать истории с одинаковымикомментарии у нас есть две разные истории комментариев?Я так не думаю, у нас одна и та же история комментариев, нам нет дела до идентичности, мы заботимся об атрибутах, то есть комментарии внутри истории комментариев должны быть одинаковыми.

Так что для меня комментарийистория это экшн

спасибо Пабло

0 голосов
/ 13 апреля 2012

Комментарий является типом значения по всем причинам, описанным выше.

CommentHistory является собственностью Ордена и не требует отдельного объекта. Это просто коллекция значений Comment. Order поддерживает внутреннюю коллекцию и контролирует доступ с помощью метода AddComment.

...