JavaEE PO VO BO DTO POJO DAO 整理总结(转)
閱讀目錄
- 1.DAO[data access object]數(shù)據(jù)訪問對象
- 2.DTO[data transfer object]數(shù)據(jù)傳輸對象
- 3.PO[persistant object]持久層對象
- 4.BO[bussiness object]業(yè)務對象
- 5.VO[value object]值對象
- 4.POJO[plain ordiary java object] 簡單java對象
? ? ? ? 佩服能將復雜難懂的技術,抽象成簡單易懂事物的人。
? ? ? ? 厭惡將簡單易懂的技術,添加一堆專業(yè)術語將別人弄的頭暈目眩的人。
? ? ? ?PO VO BO DTO POJO DAO 總體一覽:
1.DAO[data access object]數(shù)據(jù)訪問對象
? DAO層對開發(fā)人員黑盒,由架構師設計封裝。
? 在很長一段時間內(nèi),我將它理解為對數(shù)據(jù)庫的訪問,后面隨著項目的積累。
? 發(fā)現(xiàn)自己的理解相對狹隘,對數(shù)據(jù)訪問不僅僅指的是對數(shù)據(jù)庫的訪問。
? 假如A系統(tǒng)調(diào)用B系統(tǒng)的服務獲取數(shù)據(jù),這時候A系統(tǒng)對B系統(tǒng)訪問數(shù)據(jù)對象的封裝也可以稱為DAO。
2.DTO[data transfer object]數(shù)據(jù)傳輸對象
? 假設數(shù)據(jù)表中存在20個字段,但是在頁面展示列表的時候,這20個字段顯然都不會用到。
? 我想對其中的5個字段進行展示,而且這5個字段展示的時候,也并不是數(shù)據(jù)庫中他們原有的樣子。
? 還需要進行計算、截取、業(yè)務代碼轉名稱 .....等等
? 數(shù)據(jù)傳輸對象因此而被誕生,一是能提高數(shù)據(jù)傳輸?shù)乃俣?#xff0c;二能隱藏后端表結構。
3.PO[persistant object]持久層對象
? 持久對象屬性和數(shù)據(jù)庫中的字段是一一對應的,數(shù)據(jù)庫中的一條數(shù)據(jù)可以理解為一個持久對象。
? 因ORM框架的廣泛使用而被引入到 JavaEE 項目設計當中。
4.BO[bussiness object]業(yè)務對象
? 業(yè)務對象顧名思義是在業(yè)務處理中抽象出來的對象,里面除了get/set 方法外,也可以有對字段進行業(yè)務處理的方法。
? 假設你要對一個班級進行業(yè)務處理,其中的學生、教師、甚至是桌椅板凳都是業(yè)務對象的組成部分。
? 當然其中的學生、教室....都可以是和數(shù)據(jù)庫對應的PO。
5.VO[value object]值對象
? 值對象也可以稱做頁面對象,如果稱做頁面對象,那門它所代表的將是整個頁面展示層的對象。
? 可以由需要的業(yè)務對象進行的換算轉換而來。
? 如果稱呼他為值對象的話,那門他可以理解為存放業(yè)務對象的一個地方。
? 假設鍋碗瓢盆分別為對應的業(yè)務對象的話,那門整個碗柜就是一個值對象。
4.POJO[plain ordiary java object] 簡單java對象
? 簡單java對象應該是JavaEE世界里面最靈活的對象。
? 在簡單系統(tǒng)中,如果從數(shù)據(jù)庫到頁面展示都是POJO的話,它可以是DTO。
? 如果從數(shù)據(jù)庫中到業(yè)務處理中都是POJO的話,他也可以是BO。
? 同樣如果從數(shù)據(jù)庫到整個頁面的展示的話,它同樣可以是VO。
?
小結:
? 各個數(shù)據(jù)對象之間的轉換是相當靈活的,在項目中可以定義上述對象的全部和其中的幾種類型,這取決與架構師和需求。
? 在大型項目中,架構師在項目初期的任務除了搭建起整個開發(fā)環(huán)境以外,定義在系統(tǒng)中流轉的數(shù)據(jù)結構對象同樣是重重之重。
? 這項工作需要許多項目的積累和長期對軟件開發(fā)的思考,多實踐,多思考,提供最合適的數(shù)據(jù)對象解決方法,方能展現(xiàn)架構師的魅力。
轉載于:https://www.cnblogs.com/freemanabc/p/5442302.html
總結
以上是生活随笔為你收集整理的JavaEE PO VO BO DTO POJO DAO 整理总结(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第二章 读书笔记
- 下一篇: CodeSmith和PowerDesig