Domain Model的三種類型及其層級

來源:互聯網
上載者:User
Author: Anders小明

(2008-1-12更新)

從以上的分析中,我們可以瞭解到Domain Model分為三種類型:
0. 全域常量對象
1. 長生命週期業務對象(類似保單對象);
2. 交易過程的Transaction對象,幾乎沒有生命週期的;
3. Request/Response對象。這類對象以前沒有識別的,通常和VO混在一起;但是在IAA中以及電信業的模型是這類對象是獨立存在,並被持久化的;Request對象建立在累加式更新上很有用。當然他們也是幾乎沒有生命週期的。
 
並非所有的業務系統都擁有這三類對象!相當一部分的業務系統,並沒有顯著的長生命週期對象,因而沒有明確的增量變更操作類型及其規則,業務操作是直接更新業務對象,也就沒有Request以及Response對象;同時此類業務系統的Transaction對象也通常不存在;

Domain Model的層級:
但不論是那種類型對象,都擁有一個屬性,對象等級;對於保險系統來說,保單對象,產品對象以及組織對象是一級對象,而險種和角色等都是二級對象;這點對於設計Repository以及服務粒度都有影響。

關於VO對象的討論:
VO對象是一種技術類型對象,存在於Web,Domain等層次,其存在的意義是提供整合能力;其意義是:1. 保護系統的資訊邊界,提供一種結構可以使其它系統或者組件通過編碼方式擷取系統內資訊的方式;2. 保護系統的事務邊界,領域對象技術上攜帶著持久化資訊,通過VO可以屏蔽得以屏蔽。常見的VO對象存在於Web層和Domain層。
因此,VO對象的存在只是為了整合而存在,其是否存在的取決於兩個方面:架構提供的事務邊界以及物件路徑訪問能力。
Domain層VO對象,通常是用於不同Domain組件間的訪問。但隨著架構的改進,整合代碼獨立存在,而不再嵌入到組件內部,組件的邊界問題保護不複存在;更進一步的是,架構提供自動化的介面適配映射能力的增強。因而VO對象也失去存在的意義。
Web層VO對象,以SWF為例,早在SWF 1.x時代,架構就提供了豐富的物件路徑訪問能力,但其Web互動是典型的MVC2方式,事務邊界在view的render前關閉,因而導致需要特定的VO對象來避免持久化資訊問題;而SWF 2.x時代,view的render是在事務邊界內,VO不再需要。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.