удалось выделить bounded context - ы, смысловое ядро, удалось найти агрегаты, но есть объекты которые участвуют в составе агрегата и несут там полезную функцию, но непонятно как они добавляются (удаляются) в систему. Чаще всего такими свойствами обладает различная справочная информация, например: место положение (Location), способы доставки (Delivery Way), способы оплаты (payment method), валюты. Например я как админ хочу добавить новый способ оплаты, но я же не могу написать так order.AddPaymentMethod(method) или deliveryAgreement.AddPaymentMethod(method) потому что в данный момент я не хочу создавать новый заказ или соглашение по доставке, я просто хочу добавить новый способ оплаты. В тоже время на мой взгляд payment method не может тянуть на агрегат (представим что этот объект просто справочный, для информации и ниначто не влияет) и соответственно иметь свой репозиторий не может. Как и где разместить код для добавления (удаления) такого рода справочной информации и всякой мелочи ?
По-моему метод оплаты - вполне себе агрегат.
Обсуждают сегодня