Адресная дилемма - PullRequest
       6

Адресная дилемма

2 голосов
/ 01 апреля 2011

У меня есть совокупность лиц, в которой адрес является частью и голосом, но теперь у меня есть другой совокупный платеж с другим VO PaymentInfo, который содержит такие данные, как номер Creditacard и другие данные, но теперь мне нужно адрес для выставления счета и адрес доставки в PaymentInfo VO,Теперь, так как адрес является неотъемлемой частью лица, я не могу его использовать.

Итак, что я делаю,

  1. Создайте отдельный адрес Vo в совокупности платежей и используйте его в качестве адреса для выставления счета и доставкиАдрес.

  2. Переместите адрес в отдельную совокупность и укажите его в PaymentInfo и Person.

  3. Создайте два адреса в самом Person и укажите его вPaymentInfo Vo.

помогите мне, пожалуйста?

Ответы [ 2 ]

2 голосов
/ 01 апреля 2011

Важным моментом здесь является то, что объекты-значения не имеют идентичности .
Это означает, что они могут легко разделяться между сущностями.

При этом я имею в виду - не отдельные экземпляры должны бытьподелился, но их классы, типа Address вместо "Великобритания, Лондон-стрит", независимо от "16".Объект значения экземпляры должны никогда никогда не передаваться (опять же, потому что у них нет идентичности, и их состояние определяет их).

Так что на вашем месте - я бы сделалУбедитесь, что Address как концепция является вездесущим для человека и для информации о платеже (они должны иметь одинаковую структуру), переместите ее в нужную папку / пространство имен, чтобы я мог видеть, что она является общей, и используйте ее для обеих сущностей.

Если они не являются вездесущими, я переименую Address в PersonAddress и создам второй - PayerAddress (имя может отличаться в зависимости от вашего бизнеса, который вы моделируете).

Цитата Джеффа из предоставленной ссылки:

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

0 голосов
/ 02 апреля 2011

Я пойду с вездесущей природой этого.Не указывайте класс адреса Person для адреса выставления счета и адреса доставки.

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

...