最近在看这个,网上看到很多VO,PO的概念,还是不理解。特来请教。网上的理解:
概念我就不说了,不清楚的兄弟自己网上找找。关键分歧在于,PO,VO是不同的2个类,其中VO只作为业务层向作为传值使用.我的理解:
PO,VO我感觉是一个东西,只在hibernate的session内同时在事务内,和数据库行记录对应,即只是同一个东西的状态不同会在不同的阶段不同。总结问题:
1.PO,VO一般应用场景,特别是VO?
2.VO的具体应用,在设计时怎么用的?
3.PO,VO设计成一个类和两个类,实质的不同点在哪里?
概念我就不说了,不清楚的兄弟自己网上找找。关键分歧在于,PO,VO是不同的2个类,其中VO只作为业务层向作为传值使用.我的理解:
PO,VO我感觉是一个东西,只在hibernate的session内同时在事务内,和数据库行记录对应,即只是同一个东西的状态不同会在不同的阶段不同。总结问题:
1.PO,VO一般应用场景,特别是VO?
2.VO的具体应用,在设计时怎么用的?
3.PO,VO设计成一个类和两个类,实质的不同点在哪里?
2.VO的具体应用,在设计时怎么用的?同上
3.PO,VO设计成一个类和两个类,实质的不同点在哪里?不同点到没什么 不过需要注意的是 有些时候有一个"状态"的问题 有些人用VO是为了将PO转换为瞬态 写一起也不是不可以 (通过一个转换器切换前台和后台的数据)
按你的意思,VO就是FormBean ,但有些系统设计分层时,仍然存在FormBean这层,主要是用于前台数据映射到java对象。 那如果这样子,即FormBean,VO,PO,都存在,那VO又是个什么角色了?
不是 我没说VO是FORMBEAN 我现在不知道你说的VO是什么 他的拼写可能是VALUEOBJECT(FORMBEAN?)
也可能是VIEWOBJECT 而且仔细看我说的第三点 有些时候假设你用HIBERNATE的时候 PO里的值不能乱改的(尤其你用了某些特殊的处理事务的方式) 这样的话就把值从PO里提取出来放到另外一个地方供其他人使用大概吧 我就是这么理解的 可能说错了 但是LZ千万表理解错..
[我用的是struts2]更方便!从 po --> vo 的转化能更加的灵活。毕竟po和数据库表长一样。不好使,而且有2楼说的情况!2:表单数据需要从两个集合中取数据展现在同一行记录。。就需要运用VO来存储页面数据!
同样用po封装一样方便。!