日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

entity、bo、vo、po、dto、pojo、dao、service、controler如何理解和区分?

發布時間:2024/1/1 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 entity、bo、vo、po、dto、pojo、dao、service、controler如何理解和区分? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

dao層:

DAO層叫數據訪問層,全稱為data access object,屬于一種比較底層,比較基礎的操作,具體到對于某個表的增刪改查,也就是說某個DAO一定是和數據庫的某一張表一一對應的,其中封裝了增刪改查基本操作,建議DAO只做原子操作,增刪改查。

service層:

Service層叫服務層,被稱為服務,粗略的理解就是對一個或多個DAO進行的再次封裝,封裝成一個服務,所以這里也就不會是一個原子操作了,需要事物控制。

Entity
最常用實體類,基本和數據庫表一一對應,一個實體對應一張數據庫表。

controler層
Controler負責請求轉發,接受頁面過來的參數,傳給Service處理,接到返回值,再傳給頁面。

Bo(business object)
代表業務對象的意思,Bo就是把業務邏輯封裝為一個對象(注意是業務邏輯),這個對象可以包括一個或多個其它的對象。通過調用Dao方法,結合Po或Vo進行業務操作。
形象描述為一個對象的形為和動作,當然也有涉及到基它對象的一些形為和動作。
比如一個簡歷,有教育經歷、工作經歷、社會關系等等。我們可以把教育經歷對應一個PO,工作經歷對應一個PO,社會關系對應一個PO。
建立一個對應簡歷的BO對象處理簡歷,每個BO包含這些PO。
這樣處理業務邏輯時,我們就可以針對BO去處理。
封裝業務邏輯為一個對象(可以包括多個PO,通常需要將BO轉化成PO,才能進行數據的持久化,反之,從DB中得到的PO,需要轉化成BO才能在業務層使用)。

關于BO主要有三種概念
1.只包含業務對象的屬性;
2.只包含業務方法;
3.兩者都包含。
在實際使用中,認為哪一種概念正確并不重要,關鍵是實際應用中適合自己項目的需要。

Vo(value object)

代表值對象的意思,通常用于業務層之間的數據傳遞,由new創建,由GC回收。
主要體現在視圖的對象,對于一個WEB頁面將整個頁面的屬性封裝成一個對象,然后用一個VO對象在控制層與視圖層進行傳輸交換。

Po(persistant object)

代表持久層對象的意思,對應數據庫中表的字段,數據庫表中的記錄在java對象中的顯示狀態,最形象的理解就是一個PO就是數據庫中的一條記錄。

好處是可以把一條記錄作為一個對象處理,可以方便的轉為其它對象。Vo和Po,都是屬性加上屬性的get和set方法;表面看沒什么不同,但代表的含義是完全不同的。
Dto(data transfer object)
代表數據傳輸對象的意思
是一種設計模式之間傳輸數據的軟件應用系統,數據傳輸目標往往是數據訪問對象從數據庫中檢索數據
數據傳輸對象與數據交互對象或數據訪問對象之間的差異是一個以不具任何行為除了存儲和檢索的數據(訪問和存取器)
簡而言之,就是接口之間傳遞的數據封裝
表里面有十幾個字段:id,name,gender(M/F),address,age,info……
頁面需要展示三個字段:name,gender(男/女),age
DTO由此產生,一是能提高數據傳輸的速度(減少了傳輸字段),二能隱藏后端表結構

Pojo(plian ordinary java object)
POJO持久化之后==〉PO
(在運行期,由Hibernate中的cglib動態把POJO轉換為PO,PO相對于POJO會增加一些用來管理數據庫entity狀態的屬性和方法。PO對于programmer來說完全透明,
由于是運行期生成PO,所以可以支持增量編譯,增量調試。)
POJO傳輸過程中==〉DTO
POJO用作表示層==〉VO

PO 和VO都應該屬于POJO。

Controller
代表控制層,主要是Action/Servlet等構成(Spring MVC則是通過@Controller標簽使用)此層業務層與視圖層打交道的中間層,負責傳輸VO對象和調用BO層的業務方法,
負責視圖層請求的數據處理后響應給視圖層。
View
代表視圖層的意思,主要是指由JSP、HTML等文件形成的顯示層。

所以實際項目中,一般都是這樣應用的:
控制層(controller-action),業務層/服務層( bo-manager-service),實體層(po-entity),dao(dao),視圖對象(Vo-),視圖層(view-jsp/html)

總結

以上是生活随笔為你收集整理的entity、bo、vo、po、dto、pojo、dao、service、controler如何理解和区分?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。