• PO,VO,DAO,BO,POJO 理解


    阿里巴巴Java开发规范》关于领域模型的部分介绍如下

    分层领域模型规约:

    • DO(Data Object):此对象的属性与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。
    • DTO(Data Transfer Object):数据传输对象,Service 或 Manager 向外传输的对象。
    • BO(Business Object):业务对象,由 Service 层输出的封装业务逻辑的对象。
    • AO(ApplicationObject):应用对象,在Web层与Service层之间抽象的复用对象模型, 极为贴近展示层,复用度不高。
    • VO(View Object):显示层对象,通常是 Web 向模板渲染引擎层传输的对象。
    • Query:数据查询对象,各层接收上层的查询请求。注意超过 2 个参数的查询封装,禁止使用 Map 类来传输。

    领域模型命名规约:

    • 数据对象:xxxDO,xxx即为数据表名
    • 数据传输对象:xxxDTO,xxx为业务领域相关的名称。
    • 展示对象:xxxVO,xxx一般为网页名称。
    • POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。

    先看一张各个对象间的关系图,有个印象

    然后,再来慢慢解释各个对象的作用。

    图片

    VO

    Value Object

    用于表示前端的展示对象;相比与PO(数据库映射对象),VO对象与前端交互的数据可能需要经过过滤、拆分、聚合等操作;比方说部分不需要展示的数据,VO层将其踢出后返回;如果数据来源于多个地方,也将会在VO对象进行聚合再返回等操作;

    遵循Java Bean的规范,其拥有getter / setter方法

    DTO

    Data Transfer Object

    数据传输对象;DTO主要协调于各个服务之间,用于做数据的扭转并传输;比如,数据库有20个字段,但实际业务只需要5个,那么就可以借助DTO对PO对象进行传输;避免数据库结构的暴露,并减少不必要的数据交互

    遵循Java Bean的规范,其拥有getter / setter方法

    BO

    Business Object

    表示一个业务对象;BO包含了一些业务逻辑,通常用于封装对DAO、RPC等相关的调用,同时还可以进行PO、VO、DTO之间的数据转换;

    BO通常都是位于业务层,并提供了基本的业务操作;在设计上属于被服务层业务逻辑调用的对象,一段业务的执行,可能需要多个BO对象的相互配合才能完成

    PO

    persistant object

    表示着Java对象与数据库之间的映射关系;其仅用于表示数据,并没有任何的数据操作;

    遵循Java Bean的规范,其拥有getter / setter方法

    DAO

    Data Access Object

    通过Dao配合PO对象进行数据库访问,其中包含了增删改查等一系列的数据库操作,DAO一般在持久层,其完全封装了数据库的行为,并对外提供方法,上层通过他访问数据完全不需要关心数据库任何信息;

    POJO

    Plain Ordinary Java Object 的缩写

    表示一个简单 java 对象;只要遵循Java Bean的规范,并赋予getter / setter方法,就是一个POJO对象;

    只是在不用的场景,不同的功能和定义下,POJO会演变为PO、VO、DTO等

    努力学习java的Cherish
  • 相关阅读:
    C++逐行读取文本文件的正确做法
    <Android Framework 之路>Android5.1 Camera Framework(一)
    zeromq-4.1.2在windows下的编译
    Duilib应用修改程序图标方法
    gdal集成kml库的做法
    使用DWR实现JS调用服务端Java代码
    DirectUI界面编程(六)实现右键弹出菜单
    如何设计系统的错误码及错误信息
    TCP协议格式
    UDP协议
  • 原文地址:https://www.cnblogs.com/cherish-code/p/14864589.html
Copyright © 2020-2023  润新知