vo bo po 分别代表什么
这东西主要看你自己想怎么用
不OO也不代表不是面向对象
面向对象也不一定非得OO
你可以把PO当VO用 因为一些小的 不容易改变的程序里 直接用PO还是很省事的
没有标准的界限 规范是规范 但不要阻碍自己的想法
不过我还是把它们分开的 说来说去也就是为了松耦合
也有VO到BO BO到PO
都不一样
在DAO中我想应该是针对PO的 不然你不就相当于设定了全局变量么
这样会让它的重用率变成0
具体的条条框框也没细研究过
共同学习 答案补充 我的框架是做了一个DAO接口 之后实现的时候调用PO 继承接口
IDAO:
public interface IBjglsxDao extends BaseIface{
//按Glsxlxh查询
public abstract Object queryForGlsxlxh(Object object);
}
DAO:
public class BjglsxDao extends BaseDao implements IBjglsxDao{
public BjglsxDao(DaoManager arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
public Object queryForGlsxlxh(Object object) {
// TODO Auto-generated method stub
return queryForList("jxgl_bjglsx_selectForGlsxlxhForList",object);
}
}
我一直很矛盾:是否PO可以用在商业逻辑层,当作VO使用;还是将两者分开。在许多论坛上,这两者之争也很激烈。所以今天我打算把我的想法写下来。
首先,java有几种对象(PO,VO,DAO,BO,POJO) 一、PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择。 二、VO:value object值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.有一种观点就是:PO只能用在数据层,VO用在商业逻辑层和表示层。各层操作属于该层自己的数据对象,这样就可以降低各层之间的耦合,便于以后系统的维护和扩展。如果将PO用在各个层中就相当于我们使用全局变量,我们知道在OO设计非常不赞成使用全局变量。
但是每次都得进行VO-PO的转换,也确实很烦。我觉得有时候也可以在某个商业逻辑或者表示层使用PO,此时在这个商业逻辑的过程中PO的状态是不发生变化的,比如显示一条商品详细信息的商业逻辑。
在开发过的项目中,规模都很小,我一直都把PO当VO用,因为PO确实很方便,结合Hibernate的DAO,我使用JAVA的集合对象作为值传递的载体,当然Struts也是我的不二之选。
我认为:在一些直观的,简单的,不易发生变化的,不需要涉及多个PO时,传递值还是使用PO好,这样可以减少大量的工作量(也就意味着减少bug,减少风险),也不需要担心未来的维护工作!
通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。
BO(business object) 业务对象
从业务模型的角度看,见UML元件领域模型中的领域对象。封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。
PO(persistant object) 持久对象
在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。
易辉肝速: VO(value object) 值对象 通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已.但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递.BO(business object) 业...
永春县17524454508: Java VO 是什么?它的作用是什么?好处是什么 - ?
易辉肝速: 首先,java有几种对象(PO,VO,DAO,BO,POJO)一、PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象.使用Hibernate来生成PO是不错的选择.二、VO:value object值对象.通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已.但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.PO只能用在数据层,VO用在商业逻辑层和表示层.各层操作属于该层自己的数据对象,这样就可以降低各层之间的耦合,便于以后系统的维护和扩展.好处:这样可以减少大量的工作量(也就意味着减少bug,减少风险),也不需要担心未来的维护工作!
永春县17524454508: VO和PO 有什么区别啊? - ?
易辉肝速: 我一直很矛盾:是否PO可以用在商业逻辑层,当作VO使用;还是将两者分开.在许多论坛上,这两者之争也很激烈.所以今天我打算把我的想法写下来. 首先,java有几种对象(PO,VO,DAO,BO,POJO) 一、PO:persistant object ...
永春县17524454508: X.O是什么意思?! - ?
易辉肝速: XO是代表顶级的最上乘的白兰地,还有VSOP,VS,VO级.在白兰地里XO和VSOP都是代表这种系列的酒,它的原浆酒的陈酿期,比如说XO,就是原浆酒的陈酿期是12---50年甚至更长,而VSOP呢就是陈酿期是5年到10年. XO是在白兰地中表...
永春县17524454508: 什么是dao模式,dao模式的实现方法 - ?
易辉肝速: Dao其实一般没有这个类,这一般是指java中MVC架构中的model的概念,主要是访问数据库的一些方法.一般的javaMVC架构中最外层是view也就是页面,control是一些控制后台和页面访问的类,model其实是dao层,但大部分人,会再增加一层service层来提供更为方便的应用
永春县17524454508: VO 是什么单子,合同中的意思.PO=PURCHASE ORDER那vo - ?
易辉肝速: validated order
永春县17524454508: 在java中dto,bo,pojo,po是什么,简单说明 - ?
易辉肝速: DTO (Data Transfer Object)数据传输对象:主要用于远程调用等需要大量传输对象的地方. BO(business object) 业务对象:从业务模型的角度看,见UML元件领域模型中的领域对象.封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进...
永春县17524454508: xo洋酒怎么看年份 - ?
易辉肝速: XO,就是原浆酒的陈酿期是12---50年甚至更长. XO是代表顶级的最上乘的白兰地,还有VSOP,VS,VO级.在白兰地里XO和VSOP都是代表这种系列的酒,它的原浆酒的陈酿期. 比如说XO,就是原浆酒的陈酿期是12---50年甚至更长,而...
永春县17524454508: vo对象和po对象有什么区别?
易辉肝速: 简单来说 我做过的工程 有的实体 叫做POJO 有的叫VO 其实 都是 实体 的代表 没区别
永春县17524454508: 心泊哪里?到底读po还是bo 正确的读法 - ?
易辉肝速: 心泊哪里,是说心灵停泊在哪里的意思吧,那么应该念“bo” bo读音用于停泊、漂泊、淡泊等等,船靠岸、停留、安静之意 po这个读音用于湖泊、水泊、血泊等等,浅水之意