數(shù)據(jù)對象分多種,為方便閱讀并區(qū)分各數(shù)據(jù)對象的用途冗懦,習(xí)慣將數(shù)據(jù)對象分為以下幾類分唾,供參考:
- 1.持久對象 PO(persistant object)
對象關(guān)系映射(ORM)概念的產(chǎn)物,基本上對象的成員變量對應(yīng)了數(shù)據(jù)庫中一行記錄各字段的映射价脾,方便實(shí)現(xiàn)ORM的持久層框架如(Ibatis)在讀取數(shù)據(jù)的時候?qū)?shù)據(jù)庫一行記錄快速轉(zhuǎn)換為對象供業(yè)務(wù)層使用蔬充。因此蝶俱,持久對象PO里邊本應(yīng)該不包含邏輯,只有標(biāo)配的getter和setter方法即可娃惯。 - 2.數(shù)據(jù)對象DO(data object) 或 值對象VO(value object)
通常用于業(yè)務(wù)層之間的數(shù)據(jù)傳遞跷乐,和PO一樣也是僅僅包含數(shù)據(jù)而已。但PO對象中成員變量嚴(yán)格與數(shù)據(jù)庫一行記錄的字段嚴(yán)格一一映射趾浅,但DO或者VO可以不是這樣的愕提,只要業(yè)務(wù)層對象之前交換需要的數(shù)據(jù)字段即可馒稍,因此承載的數(shù)據(jù)而言 DO <= PO。 - 3.數(shù)據(jù)傳輸對象DTO/TO (data transfer object)
一般用于不同應(yīng)用程序之間傳輸?shù)臄?shù)據(jù)對象浅侨,同個應(yīng)用程序內(nèi)部一般用DO即可纽谒。 - 4.業(yè)務(wù)對象BO (business object)
封裝業(yè)務(wù)邏輯結(jié)果的業(yè)務(wù)對象可以包含多個類型的DO/VO或者PO等,一般封裝好的BO可以包含各個維度的結(jié)果數(shù)據(jù)直接給Control層直接使用如输,一般體積會叫DO或PO大鼓黔。 - 5.簡單無規(guī)則java對象POJO(plain ordinary java object)
純傳統(tǒng)意義的java對象,只有屬性字段及setter和getter方法不见,其中DO澳化、PO一般可以稱為POJO。實(shí)際項目中稳吮,一般不會有命名POJO的習(xí)慣缎谷。 - 6.數(shù)據(jù)訪問對象DAO(data access object)
負(fù)責(zé)持久層的操作,并為業(yè)務(wù)層提供接口灶似,一般配合PO針對數(shù)據(jù)庫的CURD操作使用列林。
以上對象命名純屬個人比較認(rèn)可的對象命名習(xí)慣,一般還要結(jié)合團(tuán)隊的命名規(guī)范和項目的分層決定酪惭,命名規(guī)范區(qū)分開來只為開發(fā)減少溝通成本希痴,如果沒有必要,一切從簡即可春感!
附件
本文翻譯自博客園 link
阿里巴巴 Java 開發(fā)手冊link