JavaEE PO VO BO DTO POJO DAO 整理总结
閱讀目錄
- 1.DAO[data access object]數(shù)據(jù)訪問(wèn)對(duì)象
- 2.DTO[data transfer object]數(shù)據(jù)傳輸對(duì)象
- 3.PO[persistant object]持久層對(duì)象
- 4.BO[bussiness object]業(yè)務(wù)對(duì)象
- 5.VO[value object]值對(duì)象
- 4.POJO[plain ordiary java object] 簡(jiǎn)單java對(duì)象
? ? ? ? 佩服能將復(fù)雜難懂的技術(shù),抽象成簡(jiǎn)單易懂事物的人。
? ? ? ? 厭惡將簡(jiǎn)單易懂的技術(shù),添加一堆專業(yè)術(shù)語(yǔ)將別人弄的頭暈?zāi)垦5娜恕?/p>
? ? ? ?PO VO BO DTO POJO DAO 總體一覽:
回到頂部1.DAO[data access object]數(shù)據(jù)訪問(wèn)對(duì)象
? DAO層對(duì)開發(fā)人員黑盒,由架構(gòu)師設(shè)計(jì)封裝。
? 在很長(zhǎng)一段時(shí)間內(nèi),我將它理解為對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),后面隨著項(xiàng)目的積累。
? 發(fā)現(xiàn)自己的理解相對(duì)狹隘,對(duì)數(shù)據(jù)訪問(wèn)不僅僅指的是對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。
? 假如A系統(tǒng)調(diào)用B系統(tǒng)的服務(wù)獲取數(shù)據(jù),這時(shí)候A系統(tǒng)對(duì)B系統(tǒng)訪問(wèn)數(shù)據(jù)對(duì)象的封裝也可以稱為DAO。
回到頂部2.DTO[data transfer object]數(shù)據(jù)傳輸對(duì)象
? 假設(shè)數(shù)據(jù)表中存在20個(gè)字段,但是在頁(yè)面展示列表的時(shí)候,這20個(gè)字段顯然都不會(huì)用到。
? 我想對(duì)其中的5個(gè)字段進(jìn)行展示,而且這5個(gè)字段展示的時(shí)候,也并不是數(shù)據(jù)庫(kù)中他們?cè)械臉幼印?/span>
? 還需要進(jìn)行計(jì)算、截取、業(yè)務(wù)代碼轉(zhuǎn)名稱 .....等等
? 數(shù)據(jù)傳輸對(duì)象因此而被誕生,一是能提高數(shù)據(jù)傳輸?shù)乃俣?#xff0c;二能隱藏后端表結(jié)構(gòu)。
回到頂部3.PO[persistant object]持久層對(duì)象
? 持久對(duì)象屬性和數(shù)據(jù)庫(kù)中的字段是一一對(duì)應(yīng)的,數(shù)據(jù)庫(kù)中的一條數(shù)據(jù)可以理解為一個(gè)持久對(duì)象。
? 因ORM框架的廣泛使用而被引入到 JavaEE 項(xiàng)目設(shè)計(jì)當(dāng)中。
回到頂部4.BO[bussiness object]業(yè)務(wù)對(duì)象
? 業(yè)務(wù)對(duì)象顧名思義是在業(yè)務(wù)處理中抽象出來(lái)的對(duì)象,里面除了get/set 方法外,也可以有對(duì)字段進(jìn)行業(yè)務(wù)處理的方法。
? 假設(shè)你要對(duì)一個(gè)班級(jí)進(jìn)行業(yè)務(wù)處理,其中的學(xué)生、教師、甚至是桌椅板凳都是業(yè)務(wù)對(duì)象的組成部分。
? 當(dāng)然其中的學(xué)生、教室....都可以是和數(shù)據(jù)庫(kù)對(duì)應(yīng)的PO。
回到頂部5.VO[value object]值對(duì)象
? 值對(duì)象也可以稱做頁(yè)面對(duì)象,如果稱做頁(yè)面對(duì)象,那門它所代表的將是整個(gè)頁(yè)面展示層的對(duì)象。
? 可以由需要的業(yè)務(wù)對(duì)象進(jìn)行的換算轉(zhuǎn)換而來(lái)。
? 如果稱呼他為值對(duì)象的話,那門他可以理解為存放業(yè)務(wù)對(duì)象的一個(gè)地方。
? 假設(shè)鍋碗瓢盆分別為對(duì)應(yīng)的業(yè)務(wù)對(duì)象的話,那門整個(gè)碗柜就是一個(gè)值對(duì)象。
回到頂部4.POJO[plain ordiary java object] 簡(jiǎn)單java對(duì)象
? 簡(jiǎn)單java對(duì)象應(yīng)該是JavaEE世界里面最靈活的對(duì)象。
? 在簡(jiǎn)單系統(tǒng)中,如果從數(shù)據(jù)庫(kù)到頁(yè)面展示都是POJO的話,它可以是DTO。
? 如果從數(shù)據(jù)庫(kù)中到業(yè)務(wù)處理中都是POJO的話,他也可以是BO。
? 同樣如果從數(shù)據(jù)庫(kù)到整個(gè)頁(yè)面的展示的話,它同樣可以是VO。
?
小結(jié):
? 各個(gè)數(shù)據(jù)對(duì)象之間的轉(zhuǎn)換是相當(dāng)靈活的,在項(xiàng)目中可以定義上述對(duì)象的全部和其中的幾種類型,這取決與架構(gòu)師和需求。
? 在大型項(xiàng)目中,架構(gòu)師在項(xiàng)目初期的任務(wù)除了搭建起整個(gè)開發(fā)環(huán)境以外,定義在系統(tǒng)中流轉(zhuǎn)的數(shù)據(jù)結(jié)構(gòu)對(duì)象同樣是重重之重。
? 這項(xiàng)工作需要許多項(xiàng)目的積累和長(zhǎng)期對(duì)軟件開發(fā)的思考,多實(shí)踐,多思考,提供最合適的數(shù)據(jù)對(duì)象解決方法,方能展現(xiàn)架構(gòu)師的魅力。
?
作者:Orson?
出處:http://www.cnblogs.com/java-class/?
如果,您認(rèn)為閱讀這篇博客讓您有些收獲,不妨點(diǎn)擊一下右下角的【推薦】?
如果,您希望更容易地發(fā)現(xiàn)我的新博客,不妨點(diǎn)擊一下左下角的【關(guān)注我】?
如果,您對(duì)我的博客內(nèi)容感興趣,請(qǐng)繼續(xù)關(guān)注我的后續(xù)博客,我是【Orson】?
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段 聲明,且在文章頁(yè)面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。?
轉(zhuǎn)載:http://www.cnblogs.com/java-class/p/5439646.html
總結(jié)
以上是生活随笔為你收集整理的JavaEE PO VO BO DTO POJO DAO 整理总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ES使用脚本进行局部更新的排错记录
- 下一篇: Java NIO使用及原理分析(二)