1. 程式人生 > >JavaBean, EntityBean, POJO, PO, BO,VO,DTO,DAO 區別

JavaBean, EntityBean, POJO, PO, BO,VO,DTO,DAO 區別

先記一部分

  1. 這個類是共有類(public),並且必須有一個公共的預設建構函式。
  1. 這個類的屬性使用getter和setter來訪問,其他方法遵從標準命名規範。(JavaBean是一個定義了系列 get<Name> 和 set<Name> 方法的類,通過get set 方法對暴露成員變數

  JavaBean: 是一種Java語言寫成的可重用元件,它的方法命名,構造及行為必須符合特定的約定。

  POJO(Plain Ordinary Java Object):,它不包含業務邏輯或持久邏輯等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不繼承或不實現任何其它Java框架的類或介面。

  PO: POJO在持久層的體現,對POJO持久化後就成了PO。在o/r對映的時候出現的概念,如果沒有o/r對映,沒有這個概念存在了。通常對應資料模型(資料庫),本身還有部分業務邏輯的處理。可以看成是與資料庫中的表相對映的java物件。最簡單的PO就是對應資料庫中某個表中的一條記錄,多個記錄可以用PO的集合。PO中應該不包含任何對資料庫的操作。

  DAO: PO持久化到資料庫是要進行相關的資料庫操作的(CRUQ),這些對資料庫操作的方法會統一放到一個Java物件中,這就是DAO。

  BO: POJO在業務層的體現,對於業務操作來說,更多的是從業務上來包裝物件,如一個User的BO,可能包括name, age, sex, privilege, group等,這些屬性在資料庫中可能會在多張表中,因為每一張表對應一個PO,而我們的BO需要這些PO組合起來(或說重新拼裝)才能成為業務上的一個完整物件。

  VO(Value Object/View Object): POJO在表現層的體現。 當我們處理完資料時,需要展現時,這時傳遞到表現層的POJO就成了VO。它就是為了展現資料時用的。

  DTO(Data Transfer Object): POJO在系統間傳遞時。當我們需要在兩個系統間傳遞資料時,一種方式就是將POJO序列化後傳遞,這個傳遞狀態的POJO就是DTO。

  EJB(Enterprise JavaBean): 我認為它是一組"功能"JavaBean的集合。上面說了JavaBean是實現了一種規範的Java物件。這裡說EJB是一組JavaBean,的意思是這一組JavaBean組合起來實現了某個企業組的業務邏輯。這裡的一組JavaBean不是亂組合的,它們要滿足能實現某項業務功能的搭配。找個比方,對於一身穿著來說,包括一頂帽子,一件衣服,一條褲子,兩隻鞋。這穿著就是EJB,其它的就是一個JavaBean。