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



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

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

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 手游| 仙桃市| 承德县| 西青区| 阳新县| 梨树县| 离岛区| 北流市| 墨竹工卡县| 龙陵县| 铁岭市| 新竹县| 宁化县| 西畴县| 永清县| 克山县| 寻乌县| 衡东县| 日喀则市| 家居| 开化县| 湖南省| 连城县| 万安县| 明星| 赤峰市| 镇沅| 南通市| 崇文区| 合作市| 镇江市| 左权县| 工布江达县| 石门县| 白玉县| 襄垣县| 常宁市| 京山县| 墨竹工卡县| 正阳县| 河北省|