名词很多有木有?!有点烦对不对?!那咋办?! 学呗,学会你就不烦了,哈哈[奸笑]... ...
是不是经常听别人说PO VO这类的,那这些对象到底是啥?其实我之前也迷迷糊糊,所以今天就来总结一波。本文分为三部分
1)名词解释,2)具体解释,3)总结
一:名词解释(英语单词记下来,就知道各个简称,对应什么了)
PO(persistent object)持久化对象
VO(Value Object)值对象
BO(Business Object)业务层对象
DAO(Data Access Object)数据访问对象
DTO(Data Transfer Object)数据传输对象
POJO(Plain Ordinary Java Object)简单的Java对象
二:具体解释
1)PO:持久层对象,这个是我们经常用的。和表对应,需要实现序列化接口。
A:表中的一条记录对应了一个PO对象,多条记录就对应了一个PO集合。
B:表的字段和PO对象的属性一一对应
哈哈,方便不,一条物理数据被你顺利当成了一个对象数据来处理,毕竟我们面向对象嘛
2)VO:值对象,通常用于业务层之间的数据传递
A:可以和数据库对应,也可以不对应
B:ViewObject表现层对象,主要对应界面显示的数据
3)BO:业务对象,把业务逻辑封装成一个对象
比如,一个页面显示的有班级PO、学校PO、地址PO,把这三个PO封装成一个对象,这就成了一个BO
4)DAO:数据访问对象
A:用DAO来封装DataSource
B:用DAO来实现对数据的操作(比如基本的CRUD)
想一想,你是不是经常写UserDao之类的对象来访问和操作数据呢?
5)DTO:数据传输对象,顾名思义,传输数据的对象呗
其实PO不也是传输映射表,然后传输数据吗,区别在哪呢?和BO又有什么不同
A:某一个表可能有20字段,但是你可能只要用其中的10个字段,就是说对应的10个属性你不需要,
也不对其进行操作,那么这时候,只把你需要的10个对象拿出来封装成你需要的对象,那,
这个新对象就是一个DTO,这个对象进行页面展示后,就成了一个VO对象
B:和BO的区别在于,一个是做加法的过程,一个是做减法的过程,BO是把几个对象整合成一个,
而DTO是抽取出一个表(对应一个PO)中几个字段(对应PO的属性)封装成新的对象
6)POJO:简单Java对象
一个POJO被持久化后成了PO,用来传递过程就成了DTO,对数据库进行访问操作时,就是DAO,
用来显示后就成了VO
三:总结
大家都是Java对象嘛,只不过是,在不同的场合,根据不同的角色和功能,有了不同的对象名称。个人觉得,
要想记住这几个对象,记住英文名字就可以了,见文思意,把这几个对象的中文全称说出来,那么这个对象对应的功能和应用场景,就理解的差不多了。
就跟人一样,小学、初中、高中分别叫小学生、初中生、高中生,同一个人为啥叫法不一样,因为不同时期的角色和功能不一样呀!
哈哈,总结完,印象很深刻,所投入的时间,都是值得的。
希望,可以帮助到有需要的童鞋们...