entity、bo、vo、po 如何理解和区分?
简介
Java开发过程中,基本实体类包都以entity或者model来称呼,可是不少项目中,却以Bo、Vo来命名,面试的时候,也有可能被问到这些问题。那么,这几者分别代表什么意思呢?
Entity
最常用实体类,基本和数据表一一对应,一个实体一张表。
Bo(business object)
代表业务对象的意思,Bo就是把业务逻辑封装为一个对象(注意是逻辑,业务逻辑),这个对象可以包括一个或多个其它的对象。通过调用Dao方法,结合Po或Vo进行业务操作。
形象描述为一个对象的形为和动作,当然也有涉及到基它对象的一些形为和动作。比如处理一个人的业务逻辑,该人会睡觉,吃饭,工作,上班等等行为,还有可能和别人发关系的行为,处理这样的业务逻辑时,我们就可以针对BO去处理。
再比如投保人是一个Po,被保险人是一个Po,险种信息也是一个Po等等,他们组合起来就是一张保单的Bo。
Vo(value object)
代表值对象的意思,通常用于业务层之间的数据传递,由new创建,由GC回收。
主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象,然后用一个VO对象在控制层与视图层进行传输交换。