<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【Java】一圖看懂Java中的PO,BO,VO,DTO,POJO,DAO,DO

          共 1593字,需瀏覽 4分鐘

           ·

          2022-01-01 01:50

          PO(Persistant Object - 持久化對(duì)象)

          該概念隨著ORM產(chǎn)生,可以看成是與數(shù)據(jù)庫中的表相映射的Java對(duì)象。通常就是對(duì)應(yīng)數(shù)據(jù)庫中某個(gè)表中的一條記錄。PO僅僅用于表示數(shù)據(jù),沒有任何數(shù)據(jù)操作。通常遵守Java Bean的規(guī)范,擁有 getter/setter方法。

          • PO的生命周期:是向數(shù)據(jù)庫中添加新數(shù)據(jù)時(shí)創(chuàng)建,刪除數(shù)據(jù)庫中數(shù)據(jù)時(shí)削除的。并且它只能存活在一個(gè)數(shù)據(jù)庫連接中,斷開連接即被銷毀。

          • PO的作用:可以把數(shù)據(jù)表中一條記錄作為一個(gè)對(duì)象處理,可以方便的轉(zhuǎn)為其它對(duì)象。PO是有狀態(tài)的,每個(gè)屬性代表其當(dāng)前的狀態(tài)。使用它,可以使我們的程序與物理數(shù)據(jù)解耦,并且可以簡(jiǎn)化對(duì)象數(shù)據(jù)與物理數(shù)據(jù)之間的轉(zhuǎn)換。

          • PO的特點(diǎn)

            • PO的屬性是跟數(shù)據(jù)庫表的字段一一對(duì)應(yīng)的

            • PO對(duì)象需要實(shí)現(xiàn)序列化接口

            • 一個(gè)POJO持久化后就是PO

          BO(Business Object - 業(yè)務(wù)對(duì)象)

          BO用于表示一個(gè)業(yè)務(wù)對(duì)象,它包括了業(yè)務(wù)邏輯,常常封裝了對(duì)DAO和RPC等的調(diào)用,可以進(jìn)行PO與VO/DTO之間的轉(zhuǎn)換。

          BO通常位于業(yè)務(wù)層,要區(qū)別于直接對(duì)外提供服務(wù)的服務(wù)層:BO提供了基本業(yè)務(wù)單元的基本業(yè)務(wù)操作,在設(shè)計(jì)上屬于被服務(wù)層業(yè)務(wù)流程調(diào)用的對(duì)象,一個(gè)業(yè)務(wù)流程可能需要調(diào)用多個(gè)BO來完成。

          DO(Domain Object - 領(lǐng)域?qū)ο螅?/h3>

          領(lǐng)域?qū)ο缶褪菑默F(xiàn)實(shí)世界中抽象出來的有形或無形的業(yè)務(wù)實(shí)體。通常位于業(yè)務(wù)層中。

          VO(Value Object/View Object - 值對(duì)象/視圖對(duì)象)

          Value Object,值對(duì)象,也稱為業(yè)務(wù)對(duì)象,是存活在業(yè)務(wù)層的,是業(yè)務(wù)邏輯使用的,它存活的目的就是為數(shù)據(jù)提供一個(gè)生存的地方(實(shí)際上跟DO有點(diǎn)類似)。

          VO的屬性是根據(jù)當(dāng)前業(yè)務(wù)的不同而不同的,也就是說,它的每一個(gè)屬性都一一對(duì)應(yīng)當(dāng)前業(yè)務(wù)邏輯所需要的數(shù)據(jù)的名稱。

          VO通常用于業(yè)務(wù)層之間的數(shù)據(jù)傳遞,其僅僅包含數(shù)據(jù)。但應(yīng)是抽象出的業(yè)務(wù)對(duì)象。根據(jù)業(yè)務(wù)的需要,其可以和表對(duì)應(yīng)或者不。用new關(guān)鍵字創(chuàng)建,由GC進(jìn)行回收。


          View Object,視圖對(duì)象,用于展示層,它的作用是把某個(gè)指定頁面(或組件)的所有數(shù)據(jù)封裝起來,對(duì)應(yīng)整個(gè)界面的值

          DTO(Data Transfer Object - 數(shù)據(jù)傳輸對(duì)象)

          DTO概念來源于J2EE的設(shè)計(jì)模式,原來的目的是為了EJB的分布式應(yīng)用提供粗粒度的數(shù)據(jù)實(shí)體,以減少分布式調(diào)用的次數(shù),從而提高分布式調(diào)用的性能和降低網(wǎng)絡(luò)負(fù)載。

          DTO用于表示一個(gè)數(shù)據(jù)傳輸對(duì)象,通常用于不同服務(wù)或服務(wù)不同分層之間的數(shù)據(jù)傳輸。

          DTO與VO與類似,但也有一些不同,這個(gè)不同主要是設(shè)計(jì)理念上的,比如API服務(wù)需要使用的是DTO,而用于展示層頁面的使用的是VO。例如,為了展示方便,在VO的性別字段存的是男和女,而在DTO中存的是1或者2這樣的代碼。

          DAO(Data Access Object - 數(shù)據(jù)訪問對(duì)象)

          DAO是SUN公司的一個(gè)標(biāo)準(zhǔn)J2EE設(shè)計(jì)模式,這個(gè)模式中有個(gè)接口就是 DAO,負(fù)責(zé)持久層的操作并為業(yè)務(wù)層提供接口。此對(duì)象用于訪問數(shù)據(jù)庫。通常和PO結(jié)合使用。

          DAO中包含了各種數(shù)據(jù)庫的操作方法。通過它的方法結(jié)合PO對(duì)數(shù)據(jù)庫進(jìn)行CRUD的操作。

          POJO(Plain Ordinary Java Object - 簡(jiǎn)單無規(guī)則Java對(duì)象)

          POJO表示一個(gè)簡(jiǎn)單Java對(duì)象。PO、VO、DTO都是典型的POJO。


          作者:CK
          鏈接:https://juejin.cn/post/6952848675924082718
          來源:稀土掘金
          著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。



          瀏覽 61
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天高清无码 | 成人在线伊人就去操 | 九九成人大香蕉 | 久久国产乱子伦精品一区二区豆花 | 久久亚洲综合色 |