2016-09-29 84 views
0

我是ADF的新成員,來自.Net背景。我的目標是爲我的應用程序轉向DDD,以便代碼被封裝並代表我的業務流程。該計劃推動我朝着使用CQRS將我的域模型/命令與用於查詢和顯示的VO(可能使用ESS或SOA組件推送事件以分離數據存儲,但最初使用單個數據庫)分離。在Oracle ADF中實現CQRS

我找不到在自動進稿器,利弊此實現任何信息等

我想知道: 做什麼,我試圖在ADF世界有意義?爲什麼/爲什麼不? 在這種情況下使用ADF時可能會出現什麼樣的挑戰。

回答

0

副手?我認爲你是在過度設計這個。我會從你想用CQRS解決ADF Architecture問題開始?如果您需要與SOA服務集成,您可以創建基於Web服務的VOs。ADF Faces是由服務器生成的,並且您可以創建基於Web服務的VOs。ADF擁有4個「堆棧」 - ADF BC是數據堆棧 - 基於表/視圖的EO/UI層。 ADF控制器處理頁面到頁面導航。 ADF模型是位於ADF BC和ADF Faces之間的數據抽象層,允許通過視圖層進行數據移動和數據層操作,而無需直接連接 - 保持層/層分離。要操作一個VO,你要麼操縱一個模型綁定迭代器 - 它引用VO行集迭代器和/或直接在VO(不是我選擇的設計)或應用程序模塊(我的選擇)上暴露定製的Java行爲然後可以通過按鈕/鏈接或直接執行暴露給UI,同時保持UI和模型與數據層的分離。 所有這些代碼都是由JDeveloper嚮導以及工具和編輯器爲您生成和維護的。所以只需要添加自定義代碼。

因此,ADF實現了一種模型 - 視圖 - 控制器設計模式。 我沒有看到ADF提出的問題,通過在CQRS中添加另一個抽象層來解決。 。

+0

我正試圖解決跨大型組織的性能和代碼結構。我想到的更像是分離命令邏輯代碼,並且具有快速查詢VOs –

+0

另外,許多處理是異步的,並且是通過單獨的處理器完成的,所以它在大多數情況下並沒有真正獲得UI模式的好處處理。此外,我有幾個模式可以切入我的整個項目,所以我想抽象出這些並獲得良好的測試覆蓋率。 –