[英]DDD Events Between Aggregates Example
我有兩個聚合
項目和價格調整。
價格調整將包含項目調整,即對於特定項目,將其提高 x%(例如 10%)
我的物品有一個需要更新/調整的標價。
因此,在處理價格調整時,它將找到該項目,並需要按特定百分比調整該項目的標價。 調整完成后,需要將調價中的項目調整標記為完成
我的問題是,這種對標價的更新和對項目調整的標記是如何組成事件的?
我更新標價並將項目調整標記為已完成以下事件的正確方法是什么?
這是一個正確的解決方案嗎?:
如果這是正確的方法,是否應將新計算的標價添加到 ItemListPriceAdjusted 價格中,還是應僅添加調整百分比,然后在應用/從聚合中讀取時計算?
謝謝
編輯:
我目前使用的選項是在處理價格調整時,它將通過每個項目調整 go。
它將找到它所針對的項目並調用 function AdjustPrice(Guid priceAdjustmentId, decimal adjustPercentage)
這將計算該商品的新標價,並且該商品將發出一個 ItemPriceAdjusted 事件,其中包含價格調整 ID、和新標價
然后價格調整將監聽這些事件並將相關的項目調整標記為完成,進而發出自己的 ItemAdjustmentCompleted 事件
我們在這里談論 DDD。 所以我要問的第一個問題是你想用代碼反映的業務中發生了什么。
企業不太可能決定對整個品種“調整價格”10%。 這與定價策略有關。 哪個是產品或產品類別的個體。 所以,我會先問業務。
接下來,如果在基礎業務中,您有一些專門的人員或部門來處理定價,這將為您提供上下文邊界。 最有可能的定價是與庫存(列出產品)分開的域。 很可能存在一些基本價格,即產品的主要成本。 然后有一些額外的成本,一些利潤將形成利潤。 那么,通過“調整”價格——你要達到什么目的? 這是否意味着主要成本發生了變化? 還是保證金改變了? 或者一些營銷活動結束了? 弄清楚 - 你會得到你問題的答案。 您將能夠從中派生事件名稱。
總結一下:存儲/解雇/提出/調度與業務相關的事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.