PO、VO、BO、POJO、DAO、DTO都是什么对象

名词很多有木有?!有点烦对不对?!那咋办?! 学呗,学会你就不烦了,哈哈[奸笑]... ...

是不是经常听别人说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对象嘛,只不过是,在不同的场合,根据不同的角色和功能,有了不同的对象名称。个人觉得,

  要想记住这几个对象,记住英文名字就可以了,见文思意,把这几个对象的中文全称说出来,那么这个对象对应的功能和应用场景,就理解的差不多了。

  就跟人一样,小学、初中、高中分别叫小学生、初中生、高中生,同一个人为啥叫法不一样,因为不同时期的角色和功能不一样呀!

  哈哈,总结完,印象很深刻,所投入的时间,都是值得的。

  希望,可以帮助到有需要的童鞋们...

 

posted on 2018-10-16 13:07  爪哇玛咖  阅读(1719)  评论(0编辑  收藏  举报

导航