VO(DTO)與PO(DAO)的概念
PO即 Persistence Object
VO即 Value Object
VO和PO的主要區(qū)別在于:
VO是獨(dú)立的Java Object。
PO是由Hibernate納入其實(shí)體容器(Entity Map)的對(duì)象,它代表了與數(shù)據(jù)庫(kù)中某條記錄對(duì)應(yīng)的Hibernate實(shí)體,PO的變化在事務(wù)提交時(shí)將反應(yīng)到實(shí)際數(shù)據(jù)庫(kù)中。
??? 實(shí)際上,這個(gè)VO被用作Data Transfer Object,即所謂的DTO。想必,PO就是Data Access Object ---DAO了啦。為什么要有這二者之分呢?如在傳統(tǒng)的MVC架構(gòu)中,位于Model層的PO,是否允許被傳遞到其他層面。由于PO的更新最終將被映射到實(shí)際數(shù)據(jù)庫(kù)中,如果PO在其他層面(如View層)發(fā)生了變動(dòng),那么可能會(huì)對(duì)Model層造成意想不到的破壞。
posted on 2008-02-28 16:24 Rabbit 閱讀(229) 評(píng)論(0) 編輯 收藏