goldrain

          金色雨點

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            37 隨筆 :: 2 文章 :: 239 評論 :: 0 Trackbacks
          ?
          DTO,Data Transfer Object.在以前的開發探討中,我曾經認為DTO必須和PO(持久化對象)劃清界線,要單獨構建類.
          ?
          從分層開發講,DTO負責層間的數據傳遞,是必不可少的,但實際開發經驗告訴我,大量的只有屬性的DTO對象的存在,雖然把開發分層的清清楚楚,
          然而這些DTO類卻又的確貧血,不但使代碼量急劇增加,而且隨著數量的增大,DTO的類命名和屬性命名也會難以規范.
          ?
          其實象Hibernate這樣的持久化框架,其PO已經是足夠簡單的POJO對象,可以設法利用其PO類構建DTO使用.請注意雖然這么做了,但從概念上DTO和PO仍然屬于不同層,后者才是操作數據庫的.
          ?
          以前就有人這么嘗試過,不過會遇到一個問題:就是在進行DTO到PO的屬性拷貝時,無法區分哪些屬性需要拷貝,哪些不需要.
          ?
          這個問題其實可以解決的,用PO類構造DTO時,我們可以先對DTO的所有屬性設置無用的初始值,然后再針對部分屬性設置進前臺傳遞的業務數據,這樣就構造好了一個DTO對象了.在進行DTO到PO的屬性拷貝時,可略過那些帶無用初始值的屬性,只拷貝帶業務數據的屬性.
          ?
          使用了PO類來構造DTO,使我現在項目的代碼精簡了很多.
          posted on 2007-02-25 16:02 goldrain 閱讀(1796) 評論(2)  編輯  收藏

          評論

          # re: 對DTO的再認識: 用PO代替DTO 2007-02-25 21:58 零雨其蒙
          "從概念上DTO和PO仍然屬于不同層,后者才是操作數據庫的."我覺得此話欠妥,PO應該是和表對應的,跟表是一種對應關系,而操作數據庫的應該是DAO。最近在研究《UML和模式應用》,希望討論之。
            回復  更多評論
            

          # re: 對DTO的再認識: 用PO代替DTO 2007-02-26 11:49 goldrain
          呵呵,我寫文字的確不夠嚴謹,其實是DAO用PO操作數據庫  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 祁门县| 宁德市| 美姑县| 常宁市| 平乡县| 江都市| 拉萨市| 鄱阳县| 江川县| 泸溪县| 宽城| 雷山县| 紫金县| 牟定县| 镇平县| 浮山县| 华坪县| 扶绥县| 南昌市| 竹北市| 金门县| 焉耆| 安岳县| 资溪县| 奎屯市| 赣榆县| 韩城市| 柳河县| 永兴县| 台南县| 江山市| 文登市| 福泉市| 湘西| 仁布县| 永平县| 新化县| 宁海县| 肇源县| 木兰县| 庄浪县|