我正在開發一組封裝我們的域的部分的程序集,這些程序集將由許多應用程序共享。使用訂單管理系統的例子,一個這樣的程序集將包含應用程序可以通過訂單執行的所有核心操作。我們正在應用簡單版本的CQS/CQRS,以便所有改變「系統」狀態的操作都被表示爲公共命令,例如CancelOrderCommand,ShipOrderCommand和CreateORderCommand。命令處理程序在程序集內部。如何從共享模塊中暴露讀取模型
我正在努力回答的問題是如何最好地將讀取模型暴露給消費代碼?
讀取模型將被消耗代碼用於執行查詢。我不知道如何使用讀取模型的所有方式,因此界面需要靈活以允許任何查詢。
對我來說,它的複雜性在於我不僅需要暴露我的聚合根,還有幾個客戶端應用程序可能使用的相關數據的「查找」列表。例如,每個訂單都有一個關聯的OrderType,它是數據驅動的(即不是枚舉),幷包含多個屬性,這些屬性將驅動我們的一些業務規則來控制哪些操作可以/不可以執行等。在我的內部很容易模塊來管理這種關係;但是,允許訂單創建的客戶端應用程序很可能需要向用戶顯示可能的OrderType列表。因此,我不僅需要公開訂單集合列表,還需要從我的閱讀模型中顯示OrderTypes(以及其他查找列表)的支持列表。
這通常是如何完成的?
我不知道還有什麼可以解釋,這將有助於觸發的解決方案,所以請你離開......