java中PO、VO、BO、POJO、DAO、DTO、TO、QO的理解


            前情提要
            正文詳解
                VO
                O/R Mapper
                PO
                VO與PO區別
                BO
                POJO
                DAO(常用)
                DTO(較少用,過渡作用)
                TO
                QO
                DO

前情提要

核心概念
實體類在不同應用層面的表述

個人建議
因為我學習本文的知識是源於對后台的進一步理解,所以如果你結合SpringMVC的話,理解可能感覺更好一點~

個人理解(因為對后台理解有限,不完善處以后規整)
service:BO
dao:DAO、DTO、PO、QO
正文詳解
VO

    基本理解
    value object:值對象
    view object:表現層對象

    簡要理解(部分人認為同DTO有部分相同作用)
    通常用於業務層之間的數據傳遞,主要對應界面顯示的數據對象,他的對應對象可以是一個WEB頁面,或者SWT、SWING的一個界面,通常用一個VO對象對應整個界面的值;

O/R Mapper

    基本理解
    Object Relational Mapping:對象/關系 映射*

    作用
    定義好所有的mapping之后,這個O/R Mapper可以幫我們做很多的工作;通過這些mappings,這個O/R Mapper可以生成所有的關於對象保存,刪除,讀取的SQL語句,我們不再需要寫那么多行的DAL代碼了

    建議了解
    在O/R Mapping的世界里,有兩個基本的也是重要的對象需要了解,即VO,PO

PO

    基本理解
    persistant object :持久對象

    注意
    PO中應該不包含任何對數據庫的操作!

    簡介
    在o/r映射的時候出現的概念,如果沒有o/r映射,就沒有這個概念存在了。可以看成是與數據庫中的表相映射的java對象,一般包含數據模型(數據庫),部分業務邏輯;最簡單的PO就是對應數據庫中某個表中的一條記錄,多個記錄可以用PO的集合;

    簡要理解
    PO對應數據庫表,且數據庫表會映射一個PO(java對象),一個PO就是數據庫中的一條記錄,我們這可以把這條記錄作為一個對象處理,可以方便的轉為其它對象;

VO與PO區別

    VO是用new關鍵字創建,由GC回收的
    PO則是向數據庫中添加新數據時創建,刪除數據庫中數據時削除的。並且它只能存活在一個數據庫連接中,斷開連接即被銷毀
    VO是值對象,精確點講它是業務對象,是存活在業務層的,是業務邏輯使用的,它存活的目的就是為數據提供一個生存的地方
    PO則是有狀態的,每個屬性代表其當前的狀態。它是物理數據的對象表示。使用它,可以使程序與物理數據解耦,並且可以簡化對象數據與物理數據之間的轉換
    VO的屬性是根據當前業務的不同而不同的,也就是說,它的每一個屬性都一一對應當前業務邏輯所需要的數據的名稱
    PO的屬性是跟數據庫表的字段一一對應的
    PO對象需要實現序列化接口

BO

    基本理解
    business object:業務對象

    簡要理解
    封裝業務邏輯的java對象,通過調用DAO方法,結合PO,VO進行業務操作 ;

    栗子理解(BO統籌PO)
    主要作用是把業務邏輯封裝為一個對象。這個對象可以包括一個或多個其它的對象。
    比如一個簡歷,有教育經歷、工作經歷、社會關系等等。
    我們可以把教育經歷對應一個PO,工作經歷對應一個PO,社會關系對應一個PO。
    建立一個對應簡歷的BO對象處理簡歷,每個BO包含這些PO。
    這樣處理業務邏輯時,我們就可以針對BO去處理。

POJO

    基本理解
    plain ordinary java object:簡單無規則java對象

    簡介
    單純的傳統意義的java對象。就是說在一些Object/Relation Mapping工具中,能夠做到維護數據庫表記錄的persisent object完全是一個符合Java Bean規范的純Java對象,沒有增加別的屬性和方法。我的理解就是最基本的Java Bean,只有屬性字段及setter和getter方法

    簡要理解
    POJO首先區別於其他對象,同時是最常見最多變的一個中間常用對象

    不同場景下POJO的代表
    1.一個POJO持久化以后就是PO
    2.直接用它傳遞、傳遞過程中就是DTO
    3.直接用來對應表示層就是VO

DAO(常用)

    基本理解
    data access object:數據訪問對象

    簡介
    一個標准j2ee設計模式,夾在業務邏輯與數據庫資源中間,通過DAO接口訪問數據庫,DAO中包含了各種數據庫的操作方法(CRUD操作),通過它的方法,結合PO對數據庫進行相關的操作,基本沒有互相轉化的可能性和必要;同時可以通過它把POJO持久化為PO,用PO組裝出來VO、DTO ~

    簡要理解
    通常和PO結合使用,DAO中包含了各種數據庫的操作方法;通過它的方法 , 結合PO對數據庫進行相關的操作;配合VO,提供數據庫的CRUD(增刪改查)操作

DTO(較少用,過渡作用)

    基本理解
    Data Transfer Object:數據傳輸對象

    簡要理解
    主要用於遠程調用需要大量傳輸對象的地方

    栗子理解
    比如我們一張表有100個字段,那么對應的PO就有100個屬性.
    但是我們界面上只要顯示10個字段,
    客戶端用WEB service來獲取數據,沒有必要把整個PO對象傳遞到客戶端,
    這時我們就可以用只有這10個屬性的DTO來傳遞結果到客戶端,這樣也不會暴露服務端表結構.到達客戶端以后,如果用這個對象來對應界面顯示,那此時它的身份就轉為VO

TO

    基本理解
    Transfer Object:數據傳輸對象

    簡要理解
    在應用程序不同tie(關系)之間傳輸的對象

QO

    基本理解
    Query Object:查詢對象

    簡要理解
    存儲一些與持久性查詢操作的語句對象

DO

    基本理解
    Domain Object:領域對象

    簡要理解
    就是從現實世界中抽象出來的有形或無形的業務實體


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM