最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

真的有必要定義VO,BO,PO,DO,DTO嗎?

2023-06-11 10:48 作者:gzqhero  | 我要投稿

今天給大家?guī)硪黄P(guān)于VO,BO,PO,DO,DTO的文章,閱讀完這篇文章之后,希望大家對(duì)VO,BO,PO,DO,DTO有自己的見解。

概念

在講具體的概念之前,我們先簡(jiǎn)單的講一講我們MVC開發(fā)模式。

MVC的簡(jiǎn)單定義:

M層負(fù)責(zé)與數(shù)據(jù)庫打交道;

C層負(fù)責(zé)業(yè)務(wù)邏輯的編寫;

V層負(fù)責(zé)給用戶展示(針對(duì)于前后端不分離的項(xiàng)目,不分離項(xiàng)目那種編寫模版的方式,理解V的概念更直觀)。

而我們今天要說的VO,BO,PO,DO,DTO呢,就是穿梭在這M、V、C層之間的實(shí)體傳輸對(duì)象。


  • VO(View Object):視圖對(duì)象,用于展示層,它的作用是把某個(gè)指定頁面(或組件)的所有數(shù)據(jù)封裝起來。

  • DTO(Data Transfer Object):數(shù)據(jù)傳輸對(duì)象,這個(gè)概念來源于J2EE的設(shè)計(jì)模式,原來的目的是為了EJB的分布式應(yīng)用提供粗粒度的數(shù)據(jù)實(shí)體,以減少分布式調(diào)用的次數(shù),從而提高分布式調(diào)用的性能和降低網(wǎng)絡(luò)負(fù)載,但在這里,更符合泛指用于展示層與服務(wù)層之間的數(shù)據(jù)傳輸對(duì)象。

  • BO(Business Object):業(yè)務(wù)對(duì)象,把業(yè)務(wù)邏輯封裝為一個(gè)對(duì)象,這個(gè)對(duì)象可以包括一個(gè)或多個(gè)其它的對(duì)象。

  • PO(Persistent Object):持久化對(duì)象,它跟持久層(通常是關(guān)系型數(shù)據(jù)庫)的數(shù)據(jù)結(jié)構(gòu)形成一一對(duì)應(yīng)的映射關(guān)系,如果持久層是關(guān)系型數(shù)據(jù)庫,那么,數(shù)據(jù)表中的每個(gè)字段(或若干個(gè))就對(duì)應(yīng)PO的一個(gè)(或若干個(gè))屬性。

  • DO(Domain Object):領(lǐng)域?qū)ο?/strong>,就是從現(xiàn)實(shí)世界中抽象出來的有形或無形的業(yè)務(wù)實(shí)體。

有必要用嗎?

項(xiàng)目中真的有必要定義VO,BO,PO,DO,DTO嗎?

還是要理性看待這個(gè)問題,要看我們項(xiàng)目“目的地”是什么。

如果項(xiàng)目比較小,是一個(gè)簡(jiǎn)單的MVC項(xiàng)目,又是單兵作戰(zhàn),我不建議使用VO,BO,PO,DO,DTO,直接用POJO負(fù)責(zé)各個(gè)層來傳輸就好,因?yàn)檫@種項(xiàng)目的“目的地”是快速完成。

而我們更多的時(shí)候,是持續(xù)迭代的團(tuán)隊(duì)協(xié)作項(xiàng)目,這個(gè)時(shí)候我們就建議用VO,BO,PO,DO,DTO,而且團(tuán)隊(duì)內(nèi)要達(dá)成共識(shí),形成一個(gè)標(biāo)準(zhǔn)規(guī)范。

  1. 業(yè)務(wù)復(fù)雜,人員協(xié)同性要求高的場(chǎng)景下,這些規(guī)范性的東西不按著來雖然不會(huì)出錯(cuò),程序照樣跑,但是遵守規(guī)范會(huì)讓程序更具擴(kuò)展性和可讀性;

  2. 讓類語義更明確,很容易知道類的含義;

其實(shí)就是提升項(xiàng)目的可擴(kuò)展性、可維護(hù)性可閱讀性。

提升這些性能的盡頭是經(jīng)濟(jì)效益

總結(jié)

這篇文章很短,最后稍微總結(jié)一下,不管用哪種方式,只要團(tuán)隊(duì)內(nèi)定義好一種適應(yīng)的協(xié)同規(guī)范就行。

沒有一個(gè)絕對(duì)好絕對(duì)壞的方式方法。

團(tuán)隊(duì)規(guī)范的盡頭能提升項(xiàng)目的可擴(kuò)展性、可維護(hù)性可閱讀性,從而降低bug率。

另附這些概念命名規(guī)范:

  • 數(shù)據(jù)對(duì)象:xxxPO,xxx即為數(shù)據(jù)表名。(也可DO)

  • 數(shù)據(jù)傳輸對(duì)象:xxxDTO,xxx為業(yè)務(wù)領(lǐng)域相關(guān)的名稱。

  • 展示對(duì)象:xxxVO,xxx一般為網(wǎng)頁名稱。

  • 業(yè)務(wù)對(duì)象:xxxBO,xxx是業(yè)務(wù)名稱。


真的有必要定義VO,BO,PO,DO,DTO嗎?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
岳阳市| 班戈县| 丹凤县| 桦南县| 定陶县| 满城县| 文安县| 西乌珠穆沁旗| 酉阳| 彭泽县| 句容市| 仁寿县| 宾阳县| 德阳市| 株洲市| 遂平县| 海伦市| 武平县| 周口市| 怀宁县| 徐州市| 拉萨市| 肥城市| 浦城县| 区。| 莱州市| 嘉义市| 和静县| 梁河县| 沙雅县| 潞西市| 浦县| 南充市| 元氏县| 新龙县| 太白县| 五大连池市| 泾源县| 永吉县| 祁门县| 梓潼县|