JavaEE PO VO BO DTO POJO DAO 整理總結

        佩服能將複雜難懂的技術,抽象成簡單易懂事物的人。java

        厭惡將簡單易懂的技術,添加一堆專業術語將別人弄的頭暈目眩的人。數據庫

       PO VO BO DTO POJO DAO 整體一覽:後端

1.DAO[data access object]數據訪問對象

  DAO層對開發人員黑盒,由架構師設計封裝。數據結構

  在很長一段時間內,我將它理解爲對數據庫的訪問,後面隨着項目的積累。架構

  發現本身的理解相對狹隘,對數據訪問不單單指的是對數據庫的訪問。框架

  假如A系統調用B系統的服務獲取數據,這時候A系統對B系統訪問數據對象的封裝也能夠稱爲DAO。spa

2.DTO[data transfer object]數據傳輸對象

  假設數據表中存在20個字段,可是在頁面展現列表的時候,這20個字段顯然都不會用到。設計

  我想對其中的5個字段進行展現,並且這5個字段展現的時候,也並非數據庫中他們原有的樣子。對象

  還須要進行計算、截取、業務代碼轉名稱 .....等等blog

  數據傳輸對象所以而被誕生,一是能提升數據傳輸的速度,二能隱藏後端表結構。

3.PO[persistant object]持久層對象

  持久對象屬性和數據庫中的字段是一一對應的,數據庫中的一條數據能夠理解爲一個持久對象。

  因ORM框架的普遍使用而被引入到 JavaEE 項目設計當中。

4.BO[bussiness object]業務對象

  業務對象顧名思義是在業務處理中抽象出來的對象,裏面除了get/set 方法外,也能夠有對字段進行業務處理的方法。

  假設你要對一個班級進行業務處理,其中的學生、教師、甚至是桌椅板凳都是業務對象的組成部分。

  固然其中的學生、教室....均可以是和數據庫對應的PO。

5.VO[value object]值對象

  值對象也能夠稱作頁面對象,若是稱作頁面對象,那門它所表明的將是整個頁面展現層的對象。

  能夠由須要的業務對象進行的換算轉換而來。

  若是稱呼他爲值對象的話,那門他能夠理解爲存放業務對象的一個地方。

  假設鍋碗瓢盆分別爲對應的業務對象的話,那門整個碗櫃就是一個值對象。

4.POJO[plain ordiary java object] 簡單java對象

  簡單java對象應該是JavaEE世界裏面最靈活的對象。

  在簡單系統中,若是從數據庫到頁面展現都是POJO的話,它能夠是DTO。

  若是從數據庫中到業務處理中都是POJO的話,他也能夠是BO。

  一樣若是從數據庫到整個頁面的展現的話,它一樣能夠是VO。

 

小結:

  各個數據對象之間的轉換是至關靈活的,在項目中能夠定義上述對象的所有和其中的幾種類型,這取決與架構師和需求。

  在大型項目中,架構師在項目初期的任務除了搭建起整個開發環境之外,定義在系統中流轉的數據結構對象一樣是重重之重。

  這項工做須要許多項目的積累和長期對軟件開發的思考,多實踐,多思考,提供最合適的數據對象解決方法,方能展示架構師的魅力。

相關文章
相關標籤/搜索