Как смоделировать порядок сортировки для многих к одному через два агрегированных корня

Возьмите домен, предложенный в Эффективном агрегированном дизайне продукта, имеющего несколько выпусков. В этой статье Вон приходит к выводу, что и Продукт, и Релиз должны иметь свои собственные общие корни.

Теперь предположим, что мы добавляем функцию

  • Как менеджер релизов я хотел бы иметь возможность сортировать релизы , чтобы я мог создавать временные рамки для выпуска больших эпопей для наших пользователей

Я не премьер-министр с особыми потребностями, но кажется разумным, что они захотят сортировать релизы в пользовательском интерфейсе.

Я не совсем уверен, как это должно работать. Для каждого выпуска естественно иметь свойство order, но при повторном заказе необходимо изменить несколько агрегатов в одной транзакции. С другой стороны, если эта информация хранится в агрегате Product, у вас должен быть метод, подобный product.setRelaseOrder(ReleaseId[]), который кажется странным Данные для хранения в совершенно другом месте, чем релизы. Хуже того, добавление релиза снова повлечет за собой изменение двух разных агрегатов! Что еще мы можем сделать? ProductReleaseSortOrder может быть своей собственной совокупностью, но это звучит совершенно абсурдно!

Так что же делать? На данный момент я все еще склоняюсь к варианту let-product-manage-it, но что здесь правильно?

7 голосов | спросил George Mauer 28 J000000Monday14 2014, 22:00:40

0 ответов


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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132