zoukankan      html  css  js  c++  java
  • Javaweb中PO BO VO DTO POJO DAO DO概念理解

    1. 概念及理解

      PO、DTO、VO、BO都叫POJO,就是个简单的java对象。这些概念用于描述对象的类型;由于java是面向对象的语言;程序的世界就是各个对象之间的“交互”;在交互的过程中会存在多个层次,每个层次中所拥有的内容都是不一样的;

    • PO(Persistant Object)持久化对象。

        用于表示数据库中的一条记录映射成的java对象。PO仅仅用于表示数据,没有任何数据操作。通常遵守Java Bean的规范,用于getter/setter方法。可以理解是一个PO就是数据库中的一条记录;可以理解某个事物依赖的原始数据;好处是可以将一条记录作为一个对象处理,可以方便转化其他对象。

    • BO(Business Object)业务对象

        封装对象、复杂对象,里面可能包含多个类,主要作用是把业务逻辑封装为一个对象,常常封装了对DAO、RPC等的调用,可以进行PO与VO/DTO之间的转换。BO通常位于业务层,要区别于直接对外提供服务的服务层。BO提供了基本业务单元的基本业务操作,在设计上属于被服务层业务流程调用的对象,一个业务流程可能需要调用多个BO来完成。

        比如一个简历,有教育经历、工作经历、社会关系等等。我们可以把教育经历对应一个PO、工作经历对一个PO、社会关系对应一个PO。建立一个对应简历的BO对象处理简历,每个BO包含这些PO。这里处理业务逻辑时,我们就可以针对BO去处理。

    • VO(View Object)表现对象

        用于表示一个与前端进行交互的java对象。这里的VO只包含前端需要展示的数据即可,对于前端不需要的数据,比如数据创建和修改的时间等字段,出于减少传输数据量大小和保护数据库结构不外泄的目的,不应该在VO中体现出来。通常遵守Java Bean的规范,拥有getter/setter方法。

        视图对象,用于展示层。VO的作用是把某个指定页面(或组件)的所有数据封装起来。而不用做前端WEB页面调用后端的是传数据。

    • DTO(Data Transfer Object)数据传输对象  

        这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层(Controller)和服务层(Service)之间的数据传输对象。

        前端调用时传输;也可理解成”上层“调用时传输;DTO一般是前端和后端以各种方式传递数据

    • DAO (Data access object)数据访问对象

        主要用来封装数据库的访问。通过它可以把POJO持久化为PO,用PO组装出来VO、DTO;用于表示一个数据访问对象。使用DAO访问数据库,包括插入、更新、删除、查询等操作,与PO一起使用。DAO一般在持久层,完全封装数据库操作,对外暴露的使得上层应用不需要关注数据库相关的任何信息。

    •  DO (Domain Object)  领域对象

        就是从现实世界中抽象出来的有形或无形的业务实体。一般和数据中的表结构对应。

    【参考资料】

    https://blog.csdn.net/uestcyms/article/details/80244407  Java中常见的对象类型简述(DO、BO、DTO、VO、AO、PO)

    https://www.zhihu.com/question/39651928  PO BO VO DTO POJO DAO DO这些Java中的概念分别指一些什么?

    https://www.hollischuang.com/archives/553 Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念

  • 相关阅读:
    HDU 1221 Rectangle and Circle 考虑很多情况,good题
    HDU 1223 打表 + 大数
    17984 FFF团的怒火
    17978 倒不了的塔 注意题目
    .. HDU
    17972 Golden gun的巧克力
    9718 整数因子分解(必做) 分治法
    51NOD 1201 整数划分
    Amazon Rekognition 人脸识别
    AWS Config
  • 原文地址:https://www.cnblogs.com/swordfall/p/13938122.html
Copyright © 2011-2022 走看看