2013-02-28 2 views
2

Я сейчас читаю Applying Domain-Driven Design with Examples in C# and .NET. У меня есть два вопроса относительно первоначального эскиза модели домена:Класс Reference Person меня смущает

  1. Я не являюсь носителем английского языка, так что же означает «ссылочное лицо» именно в бизнес-домене или на английском языке вообще?
  2. Автор прокомментировал эскиз, что хотя класс «Reference Person» появляется в двух разных агрегатах диаграммы, во время выполнения они являются одним и тем же экземпляром, как это возможно? если бы совокупный корень был собран мусором, это не привело бы к сбору этого экземпляра и, таким образом, сделать другой агрегат неустойчивым?

ответ

2

Здесь я отправляю картину мы говорим о:

enter image description here

  1. Клиент иногда является организацией, а не физическое лицо, оно может иметь список ReferencePersons которые вы можете связаться , Мы можем сказать, что ссылочным человеком является тот, кто представляет для организации. (Агрегат 1)

    Когда клиент хочет разместить заказ, мы также должны точно знать, с кем мы разговариваем. (Агрегат 2)

  2. Вы должны внимательно прочитать, автор прокомментировал в книге, что «класс ReferencePerson находится в двух разных агрегатах на рисунке 4-13, но экземпляры не являются». Это означает, что при одновременном загрузке заказа и клиента из базы данных Order.ReferencePerson и Customer.ReferencePersons [index] не указывают на один и тот же объект в памяти, даже если они являются одним и тем же лицом.

Более того, даже они указывают на один и тот же экземпляр, в .Net объекты будут собираться, когда нет ссылки на них. Если совокупность 1 была собрана, но совокупность 2 все еще имеет ссылку на ReferencePerson A, A все еще не собирается.

+0

+1 для публикации изображения (я действительно должен был это сделать). о втором ответе, не могли бы вы предоставить дополнительные объяснения, и что вы можете сказать об удалении Клиента, например, не приведет к тому, что все ссылочные лица исчезнут, и теперь заказ будет указывать на ссылку Null? –

+1

@Sniffer: я обновил ответ – phnkha

+0

Вот что меня смущает, потому что я предпочитаю думать о них как о единственном экземпляре, разделяемом двумя агрегатами, потому что иначе как мы будем обрабатывать конфликты (ссылочный человек был изменен в одном агрегате, но не в другом, хотя они и есть один и тот же человек)? –

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