Можно ли получить сборку только для чтения из совокупности, не проходя через корень, чтобы получить ее? Моя модель делает некоторые из этих прав прямо сейчас, и мне было интересно, если это приемлемый дизайн. Благодаря
Изменить:
Здесь пример
У меня есть агрегированный корневой объект под названием UserAccount и другой агрегированный корень, называемый VideoStore. Пользователи могут иметь несколько магазинов, в которых они находятся, и в магазинах видео может быть много пользователей. Очень простой, многие из многих, но это не потому, что таблица моста "много ко многим" содержит информацию о состоянии, поэтому она также должна быть сущностью. Итак, у меня есть объект-мост, называемый UserVideoStores и его дочерний элемент совокупного корневого VideStore (один-ко-многим).
Теперь, когда пользователь входит в систему, я хочу найти, какие видео-магазины они разделяют и отображают эту информацию. Я легко могу сделать это, создав у объекта UserAccount прямую ссылку (один ко многим) для дочернего объекта UserVideoStores из совокупности корневых видеостоков. Кажется, что это проще сделать, тогда нужно использовать запрос HQL и искать в нижней части графика, чтобы найти, в котором хранится пользователь.
Это имеет смысл?
Edit:
Ну, я придумал решение сделать мою модель чище. Я не думал прямо о некоторых своих проектах, и я научился использовать nHibernate немного лучше, чтобы помочь мне придумать решение. Благодаря
Эванс говорит: "Корень является единственным членом AGGREGATE, что внешним объектам разрешено удерживать ссылки на..." (стр. 127)
Я понимаю, что агрегат должен отображаться как единое целое для внешних объектов. Кроме того, применим Закон Деметры. Итог, я не думаю, что это приемлемо.
На самом деле Эрик изменил свое мнение о строгости сводных правил корней.
Недавно он сказал что-то вроде
"Ошеломляй чувак. Постарайся перестать нарушать правила человека. Но, эй, не бей себя над ним. DDD гордится чуваком, но нарушайте правила Agg, если вам действительно нужно. Да, мир."
См: "Эрик Эванс: Что я узнал о DDD с книгой" http://dddcommunity.org/library/evans_2009_1