對Java的常用對象(POJO、DAO、DTO、PO、BO、VO)詳細解釋及應用場景

首先這些對象都應用都是一些單詞的簡稱,也是一種應用思想,故其他語言也可以使用,在 Java? 里比較常見這些對象吧。下面來一一解釋。

一、POJO(Plain Ordinary Java Object),簡單無規(guī)則java對象

簡單而言,就是一個簡單的對象,而且沒有任何規(guī)則約束。有的時候拿 POJO? 來泛指用來做傳輸對象Java bean (包括今天要介紹的 DTO? 、 VO? 、 BO? 、 PO? 等)也是可以的。

二、DAO(Data?Access?Object),數(shù)據(jù)訪問對象

通常是和數(shù)據(jù)層打交道的最后一層,通過 DAO? 對數(shù)據(jù)庫做識別操作,最終返回我們想要的數(shù)據(jù)。通常和我們的 PO? BO? 等基礎類型,如List 、Map 等結合使用。

三、DTO(Data?Transfer?Object),數(shù)據(jù)傳輸對象

單純用來數(shù)據(jù)傳輸?shù)膶ο?。我們有的項目又分InDto 和OutDto ,顧名思義就是輸入和輸出的 Dto? 。

主要用于遠程調用等需要大量傳輸對象的地方。

比如我們一張表有100個字段,那么對應的PO就有100個屬性。

但是我們界面上只要顯示10個字段,

客戶端用WEB service來獲取數(shù)據(jù),沒有必要把整個PO對象傳遞到客戶端,

這時我們就可以用只有這10個屬性的DTO來傳遞結果到客戶端,這樣也不會暴露服務端表結構.到達客戶端以后,如果用這個對象來對應界面顯示,那此時它的身份就轉為VO

四、PO(Persistant Object)持久對象

在o/r 映射的時候出現(xiàn)的概念,如果沒有o/r映射,就沒有這個概念存在了。通常對應數(shù)據(jù)模型(數(shù)據(jù)庫),本身還有部分業(yè)務邏輯的處理,可以看成是與數(shù)據(jù)庫中的表相映射的java對象。

最簡單的 PO? 就是對應數(shù)據(jù)庫中某個表中的一條記錄,多個記錄可以用 PO? 的集合。 PO? 不包含業(yè)務邏輯和數(shù)據(jù)邏輯。就是一個Entity 或者說ModelEntity 。

PO中應該不包含任何對數(shù)據(jù)庫的操作。

五、BO(Business?Object),業(yè)務對象

我經(jīng)常使用的一個,它是和業(yè)務掛鉤的,簡單來說,我們每個業(yè)務可能需要很多 PO? (數(shù)據(jù)庫表)來組成,而我們返回前端頁面或者返回給調用方的時候,我們需要組合。而這個時候, BO? 就派上用場了,它就是一個對 PO? 的組合,也可以就是 PO? ,只是出發(fā)點是滿足業(yè)務的傳輸對象。可以組合PO、VO。

六、VO(Value Object),值對象

其實和 BO? 、 DTO? PO? 差不多,只是更形象化了, VO? 更簡單,沒有任何思想,就是一個傳輸對象。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容