zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    基本MVVM 和 ICommand用法举例(转)
    WPF C# 命令的运行机制
    628. Maximum Product of Three Numbers
    605. Can Place Flowers
    581. Shortest Unsorted Continuous Subarray
    152. Maximum Product Subarray
    216. Combination Sum III
    448. Find All Numbers Disappeared in an Array
    268. Missing Number
    414. Third Maximum Number
  • 原文地址:https://www.cnblogs.com/cherish-code/p/14864589.html
Copyright © 2011-2022 走看看