天天看點

根據職責中的“決定些什麼”來設計。決策是聚合模型作為控制者模型的主要職責,因為它擁有很多資訊,是以可以進行更好地決策。決

作者:從頭開始自學java

根據職責中的“決定些什麼”來設計。

決策是聚合模型作為控制者模型的主要職責,因為它擁有很多資訊,是以可以進行更好地決策。決策涉及業務規則。

目前是訂單上下文,指令和事件應該圍繞訂單這個聚合發生,訂單裡的付款和發貨是針對訂單而發生的,用來辨別該訂單是否已經支付和是否已經發貨。改變訂單狀态并不是那麼簡單,而是有其業務邏輯和規則在其後支撐。

第一步:下單指令。是否可以生成訂單?

第二步:支付指令。在扣款支付之前,必須得到可以支付的決策允許。

第三步:發貨指令。是否可以進行發貨?業務規則如果允許(例如檢查是否已經進行了支付),發貨事件可完成,将發貨事件發送到發貨有界上下文,轉變為指令,實作具體發貨處理。

貨到付款模式需要公司業務政策的支援,意味着公司需要承擔一定的資金風險,包括财務資金的應收賬款增加,這些取決于公司規模和公司資金的周轉效率。

假設業務政策不支援貨到付款:

第一步:下單。

第二步:支付。

第三步:如果已支付則發貨。

說帶有IF語句判斷的業務情況基本都屬于業務規則,明白這個現象有利于有針對性地發現業務規則,重構為聚合模型。通常這些IF判斷語句散落在服務代碼中。

根據職責中的“決定些什麼”來設計。決策是聚合模型作為控制者模型的主要職責,因為它擁有很多資訊,是以可以進行更好地決策。決
根據職責中的“決定些什麼”來設計。決策是聚合模型作為控制者模型的主要職責,因為它擁有很多資訊,是以可以進行更好地決策。決
根據職責中的“決定些什麼”來設計。決策是聚合模型作為控制者模型的主要職責,因為它擁有很多資訊,是以可以進行更好地決策。決

繼續閱讀