中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中PO、BO、VO、DTO、POJO、DAO概念及其作用和項目實例圖是什么

發布時間:2021-10-21 09:20:56 來源:億速云 閱讀:445 作者:柒染 欄目:大數據

本篇文章給大家分享的是有關Java中PO、BO、VO、DTO、POJO、DAO概念及其作用和項目實例圖是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

PO(bean、entity等命名):

Persistant Object持久對象,數據庫表中的記錄在java對象中的顯示狀態

最形象的理解就是一個PO就是數據庫中的一條記錄。

好處是可以把一條記錄作為一個對象處理,可以方便的轉為其它對象。 

BO(service、manager、business等命名):

Business Object業務對象

主要作用是把業務邏輯封裝為一個對象。這個對象可以包括一個或多個其它的對象。

形象描述為一個對象的形為和動作,當然也有涉及到基它對象的一些形為和動作。比如處理

一個人的業務邏輯,有睡覺,吃飯,工作,上班等等形為還有可能和別人發關系的形為。

這樣處理業務邏輯時,我們就可以針對BO去處理。

VO(from也有此寫法) :

Value Object值對象

主要體現在視圖的對象,對于一個WEB頁面將整個頁面的屬性封裝成一個對象。然后用一個VO對象在控制層與視圖層進行傳輸交換。

DTO (經過處理后的PO,可能增加或者減少PO的屬性):

Data Transfer Object數據傳輸對象

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

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

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

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

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

POJO(POJO是一種概念或者接口,身份及作用隨環境變化而變化) :

POJO有一些Private的參數作為對象的屬性。然后針對每個參數定義了get和set方法作為訪問的接口

Plain Ordinary Java Object簡單Java對象

即POJO是一個簡單的普通的Java對象,它不包含業務邏輯或持久邏輯等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不繼承或不實現任何其它Java框架的類或接口。

POJO對象有時也被稱為Data對象,大量應用于表現現實中的對象。 

一個POJO持久化以后就是PO。

直接用它傳遞、傳遞過程中就是DTO

直接用來對應表示層就是VO 

Java中PO、BO、VO、DTO、POJO、DAO概念及其作用和項目實例圖是什么

DAO(Data Access Object數據訪問對象):

這個大家最熟悉,和上面幾個O區別最大,基本沒有互相轉化的可能性和必要.

主要用來封裝對數據庫的訪問。通過它可以把POJO持久化為PO,用PO組裝出來VO、DTO

Controller控制層主要是Action/Servlet等構成(目前Spring MVC則是通過@Controller標簽使用)

此層業務層與視圖層打交道的中間層,負責傳輸VO對象和調用BO層的業務方法,負責視圖層請求的數據處理后響應給視圖層。

View(視圖層)

主要是指由JSP、HTML等文件形成的顯示層。

總結一下要用具體的X0需要看具體環境及項目架構,在不同的層、不同的應用場合,對象的身份也不一樣,而且對象身份的轉化也是很自然的。就像你對老婆來說就是老公,對父母來說就是子女。設計這些概念的初衷不是為了唬人而是為了更好的理解和處理各種邏輯,讓大家能更好的去用面向對象的方式處理問題。

在平時開發項目中大家千萬過度設計各層,因為這樣會帶來大量的工作和重復工作。如果不是大型系統可簡化一些層,因為技術是為應用服務的。

上述名詞在實際項目的應用舉例:

控制層(controller-action),業務層/服務層( bo-manager ),實體層(po-entity),dao(dao),視圖對象(Vo-本項目省略),視圖層(view-jsp/html)

以上就是Java中PO、BO、VO、DTO、POJO、DAO概念及其作用和項目實例圖是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

罗城| 保山市| 和林格尔县| 奈曼旗| 郑州市| 丘北县| 广灵县| 邯郸市| 天津市| 鄂伦春自治旗| 静海县| 丘北县| 洛宁县| 临海市| 建宁县| 阳曲县| 利津县| 太仆寺旗| 佛坪县| 中山市| 磐石市| 比如县| 资溪县| 乌鲁木齐市| 南丹县| 屏东市| 霍山县| 长葛市| 恩施市| 清镇市| 乌鲁木齐市| 集安市| 鄂尔多斯市| 茂名市| 增城市| 靖边县| 六枝特区| 岗巴县| 饶平县| 永修县| 嘉定区|