<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 16,comments - 17,trackbacks - 0
        網上一大堆關于PO,POJO,DTO,VO等等對象的討論,通常都是各持己見,公說公有理,婆說婆有理,討論到最后也沒有什么定論。今天看到一個應用的代碼,發現其講PO直接做為VO(view object)在表示層使用。只從代碼上講,這樣做確實省去了跟多操作。不用重復的做對象的賦值、構造。但是會過頭來看,這樣無疑增加了代碼的耦合性。做一個簡單的假設,如果對持久層的PO進行了修改,相應的使用PO做為對應的VO(value object)業務邏輯層和使用PO最為VO(view object)的表示層都必須做相應的修改,如此的應用給代碼的維護帶來了很大的負擔,可謂是一動則百動。
        在J2EE應用開發中,是不應該出現這中PO共享使用的方式的。實體對象不應該被跨層使用,各層維護自己的實體對象。這點看書我想大家都知道,而在實際應用中很多人都選擇不遵循這一規則。(在使用hibernate時有所不同,引用:“不過由于Hibernate的強大功能,例如動態生成PO,PO的狀態管理可以脫離Session,使得在應用了Hibernate的J2EE框架中,PO完全可以充當VO,因此我們下面把PO和VO合并,統稱為PO。”引文:結合struts和hibernate談J2EE架構的數據表示。)出現這總現象,我想原因只有一個就是貪圖了一時的省事,在一次性應用開發中,相對的業務對象改動可能性相當的少,很多時候在做項目的時候并不會出現預料不到的改變,沒有必要去管理一大堆各式各樣的實體對象,這樣就自然的導致了PO在各層中共享使用。可是就我目前接觸到的項目基本上沒有需求是如此明確的,通常需求都是在不斷的改變,甚至有時到了最后發版的時候,一些客戶都會提出修改需求的要求。另外就是自做需求的情況就更是如此了,這種項目的需求是不斷的在變化的。為了保證項目的適應性和可擴展性,就必須保證各層之間的相對獨立,盡可能降低耦合度。



    posted on 2005-03-01 12:40 非飛 閱讀(2463) 評論(2)  編輯  收藏

    FeedBack:
    # re: 各層共享使用PO的代價
    2006-03-24 16:22 | TMD
    都TMD的人云亦云,很少有說PO變動之后,VO不變動的,既然兩個都要動,何不只動一個?  回復  更多評論
      
    # re: 各層共享使用PO的代價
    2006-10-05 23:28 | CowNew開源團隊
    我的觀點,大部分實體對象只要vo、po重用就可以了,只有vo、po差距較大的地方才分開,這樣就做到了簡潔性和可擴展性的良好折中。  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲网站视频在线观看| 鲁丝片一区二区三区免费| 中文字幕亚洲免费无线观看日本| 国产视频精品免费| 1000部拍拍拍18勿入免费凤凰福利 | 日韩色日韩视频亚洲网站| 日韩成人在线免费视频| 无码免费又爽又高潮喷水的视频| 亚洲午夜成激人情在线影院| 亚洲国产第一站精品蜜芽| 亚洲精品无码日韩国产不卡?V| 国产精品另类激情久久久免费 | 亚洲最大在线观看| 亚洲成a人片在线观看无码专区| 亚洲AV无码乱码在线观看牲色| a级男女仿爱免费视频| 亚洲午夜电影一区二区三区| 亚洲国产精品热久久| 久久久久久久久免费看无码| 精品国产免费人成电影在线观看| 性色午夜视频免费男人的天堂| 免费精品久久天干天干| 国产精品永久免费视频| 亚洲一级高清在线中文字幕| 91亚洲精品第一综合不卡播放| 久久精品国产亚洲AV麻豆不卡 | 男女污污污超污视频免费在线看| 亚洲男人第一av网站| 亚洲va无码va在线va天堂| 亚洲av无码国产精品夜色午夜| 亚洲色偷偷综合亚洲AVYP| 亚洲无线观看国产精品| 亚洲乱码无码永久不卡在线 | 日韩电影免费在线观看| 亚洲国产精品无码久久九九大片| 亚洲午夜无码久久久久小说| 亚洲AV人无码激艳猛片| 91在线精品亚洲一区二区| 亚洲人成人77777在线播放| 亚洲av永久无码嘿嘿嘿| 亚洲天然素人无码专区|