volume(vo)
精选回答
隐心 2023-10-09 12:59:35
1、一、PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象。
2、使用Hibernate来生成PO是不错的选择。
3、 二、VO:value object值对象。
4、通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。
5、但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要. 有一种观点就是:PO只能用在数据层,VO用在商业逻辑层和表示层。
6、各层操作属于该层自己的数据对象,这样就可以降低各层之间的耦合,便于以后系统的维护和扩展。
7、如果将PO用在各个层中就相当于我们使用全局变量,我们知道在OO设计非常不赞成使用全局变量。
8、 但是每次都得进行VO-PO的转换,也确实很烦。
9、我觉得有时候也可以在某个商业逻辑或者表示层使用PO,此时在这个商业逻辑的过程中PO的状态是不发生变化的,比如显示一条商品详细信息的商业逻辑。
10、 在开发过的项目中,规模都很小,我一直都把PO当VO用,因为PO确实很方便,结合Hibernate的DAO,我使用JAVA的集合对象作为值传递的载体,当然Struts也是我的不二之选。
11、 我认为:在一些直观的,简单的,不易发生变化的,不需要涉及多个PO时,传递值还是使用PO好,这样可以减少大量的工作量(也就意味着减少bug,减少风险),也不需要担心未来的维护工作!
![](http://yyk.iask.sina.com.cn/pic/fimg/160992415028868983083.jpg)
相关推荐
铁的热膨胀系数是多少
铸铁的热膨胀系数是(9.2-11.8)x0.000001/°C。热膨胀系数:物体由于温度改变而有胀缩现象。其变化能力以等压(p一定)下,单位温度变化所导致的体积变化,即热膨胀系数表示。热膨胀系数有线膨胀系数α、...
展开详情vivos1摄像头怎么升降
vivos1升降摄像头的方法:vivos1只有前置镜头可以升降,而且是自动升降,也就是说,当用户在使用到vivos1的前置镜头时,手机会自动识别,接着就会自动升起手机的前置镜头。...
展开详情