簡體   English   中英

聚合之間的 DDD 事件示例

[英]DDD Events Between Aggregates Example

我有兩個聚合

項目和價格調整。

價格調整將包含項目調整,即對於特定項目,將其提高 x%(例如 10%)

我的物品有一個需要更新/調整的標價。

因此,在處理價格調整時,它將找到該項目,並需要按特定百分比調整該項目的標價。 調整完成后,需要將調價中的項目調整標記為完成

我的問題是,這種對標價的更新和對項目調整的標記是如何組成事件的?

我更新標價並將項目調整標記為已完成以下事件的正確方法是什么?

這是一個正確的解決方案嗎?:

  • 在AdjustListPrice等項目上調用function,並傳入要調整的id和百分比等價格調整信息。
  • 然后引發一個事件,例如 ItemListPriceAdjusted 讓價格調整監聽,以便它可以將調整標記為完成並引發另一個事件,例如 itemPriceadjustmentCompleted

如果這是正確的方法,是否應將新計算的標價添加到 ItemListPriceAdjusted 價格中,還是應僅添加調整百分比,然后在應用/從聚合中讀取時計算?

謝謝

編輯:

我目前使用的選項是在處理價格調整時,它將通過每個項目調整 go。

它將找到它所針對的項目並調用 function AdjustPrice(Guid priceAdjustmentId, decimal adjustPercentage)

這將計算該商品的新標價,並且該商品將發出一個 ItemPriceAdjusted 事件,其中包含價格調整 ID、和新標價

然后價格調整將監聽這些事件並將相關的項目調整標記為完成,進而發出自己的 ItemAdjustmentCompleted 事件

我們在這里談論 DDD。 所以我要問的第一個問題是你想用代碼反映的業務中發生了什么。

企業不太可能決定對整個品種“調整價格”10%。 這與定價策略有關。 哪個是產品或產品類別的個體。 所以,我會先問業務。

接下來,如果在基礎業務中,您有一些專門的人員或部門來處理定價,這將為您提供上下文邊界。 最有可能的定價是與庫存(列出產品)分開的域。 很可能存在一些基本價格,即產品的主要成本。 然后有一些額外的成本,一些利潤將形成利潤。 那么,通過“調整”價格——你要達到什么目的? 這是否意味着主要成本發生了變化? 還是保證金改變了? 或者一些營銷活動結束了? 弄清楚 - 你會得到你問題的答案。 您將能夠從中派生事件名稱。

總結一下:存儲/解雇/提出/調度與業務相關的事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM