entity、bo、vo、po、dto、pojo、dao、javabean

轉自:https://www.jianshu.com/p/b934b0d72602

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

Bo(business object)
代表業務對象的意思,Bo就是把業務邏輯封裝爲一個對象(注意是邏輯,業務邏輯),這個對象可以包括一個或多個其它的對象。通過調用Dao方法,結合Po或Vo進行業務操作。

形象描述爲一個對象的形爲和動作,當然也有涉及到基它對象的一些形爲和動作。比如處理一個人的業務邏輯,該人會睡覺,喫飯,工作,上班等等行爲,還有可能和別人發關係的行爲,處理這樣的業務邏輯時,我們就可以針對BO去處理。

再比如投保人是一個Po,被保險人是一個Po,險種信息也是一個Po等等,他們組合起來就是一張保單的Bo。

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

Po(persistant object)
代表持久層對象的意思,對應數據庫中表的字段,數據庫表中的記錄在java對象中的顯示狀態,最形象的理解就是一個PO就是數據庫中的一條記錄。PO中不應該包含任何對數據庫的操作。

好處是可以把一條記錄作爲一個對象處理,可以方便的轉爲其它對象。Vo和Po,都是屬性加上屬性的get和set方法;表面看沒什麼不同,但代表的含義是完全不同的。

Dto(data transfer object)
代表數據傳輸對象的意思
是一種設計模式之間傳輸數據的軟件應用系統,數據傳輸目標往往是數據訪問對象從數據庫中檢索數據
數據傳輸對象與數據交互對象或數據訪問對象之間的差異是一個以不具任何行爲除了存儲和檢索的數據(訪問和存取器)
簡而言之,就是接口之間傳遞的數據封裝
表裏面有十幾個字段:id,name,gender(M/F),age……
頁面需要展示三個字段:name,gender(男/女),age
DTO由此產生,一是能提高數據傳輸的速度(減少了傳輸字段),二能隱藏後端表結構

Pojo(plian ordinary java object)
代表簡單無規則java對象
純的傳統意義的java對象,最基本的Java Bean只有屬性加上屬性的get和set方法

可以額轉化爲PO、DTO、VO;比如POJO在傳輸過程中就是DTO;POJO用作表示層就是VO

Dao(data access object)
代表數據訪問對象的意思,是sun的一個標準j2ee設計模式的接口之一,負責持久層的操作 。這個基本都瞭解,Dao和上面幾個O區別最大,基本沒有互相轉化的可能性和必要,主要用來封裝對數據的訪問,注意,是對數據的訪問,不是對數據庫的訪問。通過接收Business層的數據,把POJO持久化爲PO。

Controller
代表控制層,主要是Action/Servlet等構成(Spring MVC則是通過@Controller標籤使用)此層業務層與視圖層打交道的中間層,負責傳輸VO對象和調用BO層的業務方法,負責視圖層請求的數據處理後響應給視圖層。

View
代表視圖層的意思,主要是指由JSP、HTML等文件形成的顯示層。

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

在這裏插入圖片描述

POJO 和JavaBean的區別
POJO 和JavaBean是我們常見的兩個關鍵字,一般容易混淆,POJO全稱是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻譯成:普通Java類,具有一部分getter/setter方法的那種類就可以稱作POJO,但是JavaBean則比 POJO複雜很多, Java Bean 是可複用的組件,對 Java Bean 並沒有嚴格的規範,理論上講,任何一個 Java 類都可以是一個 Bean 。但通常情況下,由於 Java Bean 是被容器所創建(如 Tomcat) 的,所以 Java Bean 應具有一個無參的構造器,另外,通常 Java Bean 還要實現 Serializable 接口用於實現 Bean 的持久性。 Java Bean 是不能被跨進程訪問的。JavaBean是一種組件技術,就好像你做了一個扳子,而這個扳子會在很多地方被拿去用,這個扳子也提供多種功能(你可以拿這個扳子扳、錘、撬等等),而這個扳子就是一個組件。一般在web應用程序中建立一個數據庫的映射對象時,我們只能稱它爲POJO。POJO(Plain Old Java Object)這個名字用來強調它是一個普通java對象,而不是一個特殊的對象,其主要用來指代那些沒有遵從特定的Java對象模型、約定或框架(如EJB)的Java對象。理想地講,一個POJO是一個不受任何限制的Java對象(除了Java語言規範)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章