請教Entity/VO/DTO/Domain Object/Biz Object等名詞的含義

來源:互聯網
上載者:User

一、VO和DTO
VO:  Value Object
DTO: Data Transfer Object
個人理解VO和DTO是類似的東西,原則上VO和DTO只有Public Fields,主要用於進程之間資料傳遞的問題,VO和DTO不會傳遞到展示層,在業務層就會被吸收。但看到很多人在建立VO和DTO時,也含有Setter,Getter屬性和一些其它的輔助方法,這也無可厚非,我自己也不能確定這對不對。望大家給出意見。

二、Entity和Domain Object
Entity和Domain Object應該是類似的東西,我覺得這兩者概念上可能與Biz Object(Business Object)有所不同,但我看到網上很多文檔都把他們當成類似的東西。
Entity和Domain Object除了有Setter,Getter屬性外,還有僅僅屬於自己的一些專有(special)方法,如CRUD及其他專有方法,和有一些Services介面,並不涉及Domain Object與Domain Object之間關係的一些方法。也就是說Domain Object負責資料持久化,這可以由其IDataServices介面來實現。Entity和Domain Object更強調具體是哪一個對象,或者說是執行個體化的Entity和Domain Object對象。
如果用Domain Object來設計程式,不自覺地就會遵守一些重構策略(如Divergent Change、Shotgun Surgery、Switch Statements等,具體可以看Rickie的blog),我們知道Domain Driven Design這本書出現在Refactoring這本書之後,看來也是Martin Fowler對Refactoring進一步總結、升華的結果。用Domain Object來設計程式,降低了類之間的耦合,可以不自覺地達到Refactoring結果。看來出現Refactoring後,Domain Object的出現只是時間的問題。

idior的O/R Mapping 基本概念和一個困擾我長時間的問題也談到了Entity和Domain Object

三、Biz Object
個人理解Biz Object更加專註於業務實現,主要強調業務類之間的關係。這也是它與Entity或Domain Object的不同之處。
在具體的程式中有時還會有Manager類,用於管理Biz Object和作為Biz Object的Facade。

我一直沒有成型的架構,下一步抽時間看看Domain Model 探索和EDRA,我更覺得架構不用通用,可以根據一些典型的業務建立合適的架構,更希望大家能給出好的架構。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.