Java开发过程中,基本实体类包都以entity或者model来称呼;
可是不少项目中,却以Bo、Vo来命名,面试的时候,也有可能被问到这些问题。那么,这几者分别代表什么意思呢?
一:PO( Persistant Object )持久对象(Entity)
1)最常用实体类,基本 和 数据表一一对应,一个实体类 对应 一张表。
2)多个记录还可以用 PO 的集合,PO 中应该不包含,任何对数据库的操作。
3)好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。
Vo和Po,都是属性加上属性的get和set方法;表面看没什么不同,但代表的含义是完全不同的。
二:DO( Domain Object )领域对象
1)就是从,现实世界中抽象出来的,有形或无形的 业务实体。
三:TO( Transfer Object )数据传输对象(发送和接收有用到,所以要放到 Common 中)
1)不同 应用程序之间, 传输的对象。例如:为服务之间传输的对象。
简而言之,就是接口之间传递的数据封装。
2)表里面有十几个字段:id,name,gender(M/F),age……
页面需要展示三个字段:name,gender(男/女),age
3)TO由此产生,一是能提高数据传输的速度(减少了传输字段),二能隐藏后端表结构
四:DTO( Data Transfer Object )数据传输对象
1)类似于 TO
五:VO( Value Object )值对象
1)代表值对象的意思,通常用于 业务层之间 的数据传递。和 PO 一样,也是仅仅包含数据而已。
但应是 抽象出的 业务对象,可以和表对应,也可以不,这根据业务的需要。
用 new 关键字创建,由 GC 回收的。
2)主要体现在:View Object:视图对象。
. 接受页面传递来的数据,封装对象。
.. 将业务处理完的对象,封装成页面要用的数据。用一个VO对象在控制层与视图层进行传输交换。
六:BO( Bussiness Object )业务对象
1)封装 复杂的 业务对象,其中可能 包含 多个 PO 的字段,组成一个 满足业务条件的 BO 对象。
2)例:我们就可以针对BO去处理再比如投保人是一个Po,被保险人是一个Po,险种信息也是一个Po等等,
他们组合起来就是一张保单的Bo。
七:POJO( Plain Ordinary Java Object )简单无规则 java 对象
1)普通的 java 对象,以上所有的类,都可以 统称为 POJO。
2)可以额转化为PO、DTO、VO;比如POJO在传输过程中就是DTO
八:DAO( Data Access Object )数据访问对象
1)用来访问数据库的对象,就是 DAO ,为业务层提供接口;
包含了各种数据库的操作方法,通常与 PO 结合使用,对数据库进行操作。
2)夹在业务逻辑 与 数据库 资源中间。配合 VO ,提供数据库 CRUD 操作。
是对数据的访问,不是对数据库的访问。