您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Java中PO、BO、VO、DTO、POJO、DAO概念及其作用和項目實例圖是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
PO(bean、entity等命名):
Persistant Object持久對象,數(shù)據(jù)庫表中的記錄在java對象中的顯示狀態(tài)
最形象的理解就是一個PO就是數(shù)據(jù)庫中的一條記錄。
好處是可以把一條記錄作為一個對象處理,可以方便的轉(zhuǎn)為其它對象。
BO(service、manager、business等命名):
Business Object業(yè)務對象
主要作用是把業(yè)務邏輯封裝為一個對象。這個對象可以包括一個或多個其它的對象。
形象描述為一個對象的形為和動作,當然也有涉及到基它對象的一些形為和動作。比如處理
一個人的業(yè)務邏輯,有睡覺,吃飯,工作,上班等等形為還有可能和別人發(fā)關系的形為。
這樣處理業(yè)務邏輯時,我們就可以針對BO去處理。
VO(from也有此寫法) :
Value Object值對象
主要體現(xiàn)在視圖的對象,對于一個WEB頁面將整個頁面的屬性封裝成一個對象。然后用一個VO對象在控制層與視圖層進行傳輸交換。
DTO (經(jīng)過處理后的PO,可能增加或者減少PO的屬性):
Data Transfer Object數(shù)據(jù)傳輸對象
主要用于遠程調(diào)用等需要大量傳輸對象的地方。
比如我們一張表有100個字段,那么對應的PO就有100個屬性。
但是我們界面上只要顯示10個字段,
客戶端用WEB service來獲取數(shù)據(jù),沒有必要把整個PO對象傳遞到客戶端,
這時我們就可以用只有這10個屬性的DTO來傳遞結果到客戶端,這樣也不會暴露服務端表結構.到達客戶端以后,如果用這個對象來對應界面顯示,那此時它的身份就轉(zhuǎn)為VO
POJO(POJO是一種概念或者接口,身份及作用隨環(huán)境變化而變化) :
POJO有一些Private的參數(shù)作為對象的屬性。然后針對每個參數(shù)定義了get和set方法作為訪問的接口
Plain Ordinary Java Object簡單Java對象
即POJO是一個簡單的普通的Java對象,它不包含業(yè)務邏輯或持久邏輯等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不繼承或不實現(xiàn)任何其它Java框架的類或接口。
POJO對象有時也被稱為Data對象,大量應用于表現(xiàn)現(xiàn)實中的對象。
一個POJO持久化以后就是PO。
直接用它傳遞、傳遞過程中就是DTO
直接用來對應表示層就是VO
DAO(Data Access Object數(shù)據(jù)訪問對象):
這個大家最熟悉,和上面幾個O區(qū)別最大,基本沒有互相轉(zhuǎn)化的可能性和必要.
主要用來封裝對數(shù)據(jù)庫的訪問。通過它可以把POJO持久化為PO,用PO組裝出來VO、DTO
Controller控制層主要是Action/Servlet等構成(目前Spring MVC則是通過@Controller標簽使用)
此層業(yè)務層與視圖層打交道的中間層,負責傳輸VO對象和調(diào)用BO層的業(yè)務方法,負責視圖層請求的數(shù)據(jù)處理后響應給視圖層。
View(視圖層)
主要是指由JSP、HTML等文件形成的顯示層。
總結一下要用具體的X0需要看具體環(huán)境及項目架構,在不同的層、不同的應用場合,對象的身份也不一樣,而且對象身份的轉(zhuǎn)化也是很自然的。就像你對老婆來說就是老公,對父母來說就是子女。設計這些概念的初衷不是為了唬人而是為了更好的理解和處理各種邏輯,讓大家能更好的去用面向?qū)ο蟮姆绞教幚韱栴}。
在平時開發(fā)項目中大家千萬過度設計各層,因為這樣會帶來大量的工作和重復工作。如果不是大型系統(tǒng)可簡化一些層,因為技術是為應用服務的。
上述名詞在實際項目的應用舉例:
控制層(controller-action),業(yè)務層/服務層( bo-manager ),實體層(po-entity),dao(dao),視圖對象(Vo-本項目省略),視圖層(view-jsp/html)
以上就是Java中PO、BO、VO、DTO、POJO、DAO概念及其作用和項目實例圖是什么,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。