java的幾種對象(PO,VO,DAO,BO,POJO)解釋

 轉帖來自:http://blog.chinaunix.net/u/4764/showart_144878.html

java的幾種對象(PO,VO,DAO,BO,POJO)解釋 
   一、PO:persistant object 持久對象,可以看成是與數據庫中的表相映射的java對象。最簡單的PO就是對應數據庫中某個表中的一條記錄,多個記錄可以用PO的集合。PO中應該不包含任何對數據庫的操作。

   二、VO:value object值對象。通常用於業務層之間的數據傳遞,和PO一樣也是僅僅包含數據而已。但應是抽象出的業務對象,可以和表對應,也可以不,這根據業務的需要.個人覺得同DTO(數據傳輸對象),在web上傳遞。

   三、DAO:data access object 數據訪問對象,此對象用於訪問數據庫。通常和PO結合使用,DAO中包含了各種數據庫的操作方法。通過它的方法,結合PO對數據庫進行相關的操作。

   四、BO:business object 業務對象,封裝業務邏輯的java對象,通過調用DAO方法,結合PO,VO進行業務操作。

   五、POJO:plain ordinary java object 簡單無規則java對象,我個人覺得它和其他不是一個層面上的東西,VO和PO應該都屬於它。 
 

struts中的幾種類型的對象的區分- -

                                      

在struts中(或者其他的基於MVC的WEB應用中)的幾種常用對象如下:
  1. 業務對象(BO)
     1.1 實體業務對象(Entity)
     1.2 過程業務對象(Process)
     1.3 事件業務對象(Event)
  2. 數據傳遞對象/值對象(DTO/VO)
  3. FormBean
  4. 數據訪問對象(DAO)
  5. POJO(或者可以翻譯爲純Java對象?:))
  6. 持久化對象(PO)
這些對象構成了整個WEB應用程序的立體結構,結構圖大概如下:
 
立體結構圖
  1. BO就是業務邏輯中所涉及的所有的對象,使用這些對象來進行邏輯操作。
      EJB中的EB就是一種實體業務對象
      EJB中的SB就是一種過程業務對象
      BO的可視範圍在控制層和持久層之間。
  2. DTO主要是用來在不同層之間傳遞數據,是細粒度數據的粗粒度視圖。  關於他和其他對象的差別見上圖。
  3. FormBean是Html Form映射成的一個對象,主要是用來把Html Form中零散的數據封裝起來,以對象的形式來提供OO方式的操作。
  4. DAO使底層數據訪問邏輯與業務邏輯分離開,也就是說因爲DAO的存在,才隔離開了數據的訪問邏輯和業務邏輯,DAO從具體數據源中抽取數據,組成POJO,供BO使用,同時對BO傳遞過來的POJO,持久化到數據源中。
  5. POJO是和PO相區分的一種對象,POJO指的是純Java的對象,他活動於業務層,由JVM來掌管其生死。
  6. PO是對應於數據源而存在的對象,它往上對應於POJO,往下對應於物理數據源。一般的,ORM提供這種PO,例如hibernate,通過它,使程序員感覺不到PO的存在,數據源自然的映射成了Java中的對象(POJO)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章