影音先锋男人资源av站_狠狠色综合激情丁香五月_爱爱爱爱看视频_在线播放免费人成视频在线观看_少妇人妻综合久久中文字幕_国产午夜无码精品免费看_久久久久久夜精品精品免费啦_男人女人午夜视频免费_日本xxxx裸体xxxx_丰满人妻熟妇乱又仑精品

電子科大論壇-非清水河畔

標(biāo)題: JAVA語言深入:了解關(guān)于JAVA的PO與VO [打印本頁]

作者: liwei58    時(shí)間: 2007-11-18 09:26
標(biāo)題: JAVA語言深入:了解關(guān)于JAVA的PO與VO
一直很矛盾:是否PO可以用在商業(yè)邏輯層,當(dāng)作VO使用;還是將兩者分開。在許多論壇上,這兩者之爭(zhēng)也很激烈。所以今天我打算把我的想法寫下來。  

         首先,java有幾種對(duì)象(PO,VO,DAO,BO,POJO)   

         一、PO:persistant object 持久對(duì)象,可以看成是與數(shù)據(jù)庫中的表相映射的java對(duì)象。使用Hibernate來生成PO是不錯(cuò)的選擇。  

          二、VO:value object值對(duì)象。通常用于業(yè)務(wù)層之間的數(shù)據(jù)傳遞,和PO一樣也是僅僅包含數(shù)據(jù)而已。但應(yīng)是抽象出的業(yè)務(wù)對(duì)象,可以和表對(duì)應(yīng),也可以不,這根據(jù)業(yè)務(wù)的需要.

      有一種觀點(diǎn)就是:PO只能用在數(shù)據(jù)層,VO用在商業(yè)邏輯層和表示層。各層操作屬于該層自己的數(shù)據(jù)對(duì)象,這樣就可以降低各層之間的耦合,便于以后系統(tǒng)的維護(hù)和擴(kuò)展。如果將PO用在各個(gè)層中就相當(dāng)于我們使用全局變量,我們知道在OO設(shè)計(jì)非常不贊成使用全局變量。  

       但是每次都得進(jìn)行VO-PO的轉(zhuǎn)換,也確實(shí)很煩。我覺得有時(shí)候也可以在某個(gè)商業(yè)邏輯或者表示層使用PO,此時(shí)在這個(gè)商業(yè)邏輯的過程中PO的狀態(tài)是不發(fā)生變化的,比如顯示一條商品詳細(xì)信息的商業(yè)邏輯。  

       在開發(fā)過的項(xiàng)目中,規(guī)模都很小,我一直都把PO當(dāng)VO用,因?yàn)镻O確實(shí)很方便,結(jié)合Hibernate的DAO,我使用JAVA的集合對(duì)象作為值傳遞的載體,當(dāng)然Struts也是我的不二之選。
  
       我認(rèn)為:在一些直觀的,簡(jiǎn)單的,不易發(fā)生變化的,不需要涉及多個(gè)PO時(shí),傳遞值還是使用PO好,這樣可以減少大量的工作量(也就意味著減少bug,減少風(fēng)險(xiǎn)),也不需要擔(dān)心未來的維護(hù)工作!

來原:www




歡迎光臨 電子科大論壇-非清水河畔 (http://www.hallmarkedu.com/) Powered by Discuz! X3.4