數據對象分多種,為方便閱讀並區分各數據對象的用途,習慣將數據對象分為以下幾類,供參考:
- 持久對象 PO(persistant object)
對象關系映射(ORM)概念的產物,基本上對象的成員變量對應了數據庫中一行記錄各字段的映射,方便實現ORM的持久層框架如(Ibatis)在讀取數據的時候將數據庫一行記錄快速轉換為對象供業務層使用。因此,持久對象PO里邊本應該不包含邏輯,只有標配的getter和setter方法即可。 - 數據對象DO(data object) 或 值對象VO(value object)
通常用於業務層之間的數據傳遞,和PO一樣也是僅僅包含數據而已。但PO對象中成員變量嚴格與數據庫一行記錄的字段嚴格一一映射,但DO或者VO可以不是這樣的,只要業務層對象之前交換需要的數據字段即可,因此承載的數據而言 DO <= PO。 - 數據傳輸對象DTO/TO (data transfer object)
一般用於不同應用程序之間傳輸的數據對象,同個應用程序內部一般用DO即可。 - 業務對象BO (business object)
封裝業務邏輯結果的業務對象可以包含多個類型的DO/VO或者PO等,一般封裝好的BO可以包含各個維度的結果數據直接給Control層直接使用,一般體積會叫DO或PO大。 - 簡單無規則java對象POJO(plain ordinary java object)
純傳統意義的java對象,只有屬性字段及setter和getter方法,其中DO、PO一般可以稱為POJO。實際項目中,一般不會有命名POJO的習慣。 - 數據訪問對象DAO(data access object)
負責持久層的操作,並為業務層提供接口,一般配合PO針對數據庫的CURD操作使用。
以上對象命名純屬個人比較認可的對象命名習慣,一般還要結合團隊的命名規范和項目的分層決定,命名規范區分開來只為開發減少溝通成本,如果沒有必要,一切從簡即可!