向左走,向右走。。。
          永遠(yuǎn)不回頭
          posts - 16,comments - 17,trackbacks - 0
              網(wǎng)上一大堆關(guān)于PO,POJO,DTO,VO等等對(duì)象的討論,通常都是各持己見,公說公有理,婆說婆有理,討論到最后也沒有什么定論。今天看到一個(gè)應(yīng)用的代碼,發(fā)現(xiàn)其講PO直接做為VO(view object)在表示層使用。只從代碼上講,這樣做確實(shí)省去了跟多操作。不用重復(fù)的做對(duì)象的賦值、構(gòu)造。但是會(huì)過頭來看,這樣無疑增加了代碼的耦合性。做一個(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ù)帶來了很大的負(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 非飛 閱讀(2470) 評(píng)論(2)  編輯  收藏

          FeedBack:
          # re: 各層共享使用PO的代價(jià)
          2006-03-24 16:22 | TMD
          都TMD的人云亦云,很少有說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)航:
           
          主站蜘蛛池模板: 雷州市| 甘肃省| 胶南市| 古浪县| 赤壁市| 奉贤区| 连州市| 香港 | 囊谦县| 偃师市| 云龙县| 伊通| 霞浦县| 泰来县| 普陀区| 榆树市| 鄂伦春自治旗| 安福县| 将乐县| 沈阳市| 孟连| 商都县| 肇源县| 长子县| 巩留县| 商城县| 如皋市| 花莲市| 兴文县| 胶州市| 久治县| 海门市| 乐业县| 杭锦后旗| 牟定县| 和顺县| 漳平市| 江北区| 尼勒克县| 奎屯市| 五峰|