JAVA中的各种Object

  1. DO
  2. DTO
  3. BO
  4. AO
  5. VO
  6. 一些需要注意的点

首先引用一下阿里开发手册中的定义.

  • DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。
  • DTO( Data Transfer Object):数据传输对象,Service或Manager向外传输的对象。
  • BO( Business Object):业务对象。 由Service层输出的封装业务逻辑的对象。
  • AO( Application Object):应用对象。 在Web层与Service层之间抽象的复用对象模型,极为贴近展示层,复用度不高。
  • VO( View Object):显示层对象,通常是Web向模板渲染引擎层传输的对象。
  • POJO( Plain Ordinary Java Object):在本手册中, POJO专指只有setter/getter/toString的简单类,包括DO/DTO/BO/VO等。

用法用量请各位看官老爷酌情食用. POJO, 不解释. 所有的这些Object里面. 原则上都不允许有业务代码.

DO

DO是绝对不允许添加任何非 set/get 以外的代码的(包括修改set get). 可以有自定义的toString

DTO

通常用于系统间传输, 必需能够序列化, 可能需要考虑异构语言系统的兼容问题.

BO

业务系统内部使用, 用于复杂逻辑数据处理, 跨业务数据传递 , 原始数据二次加工等 . 注意, 原文可能有问题. 此对象应该为封装业务逻辑的数据对象.

AO

业务和架构过度复杂的产物, 很实用, 但不常见.

VO

常用于对前端的api接口响应中. 是可以暴露给最终用户的数据.

一些需要注意的点

DO 和 DTO 会参与dao, rmi, json, xml 等 需要序列化操作. 额外代码 可能会导致 序列化失败, 严重的可能导致一些系统关键对象的销毁.

DO 和 BO 通常会包含大量不能对外暴露的属性数据.

DTO 和 AO 与VO 数据格式可能不一致. 即使一致通常也需要加工后转成VO才可以发送给最终用户.(这句话可能有争议, 但一般指没有严格代码要求的地方)

VO 和 DTO 可以对外部返回. 可以用于接收外部系统数据, 通常认为每个字段所接收的数据.都是具有风险的. 至少需要常规判空.严格安全环境需要安全检查.

AO BO 通常为单个子项目内部使用. DO 只存在于数据层.

文章标题:JAVA中的各种Object

本文作者:zhu8fei

发布时间:2020-04-21, 10:57:36

最后更新:2024-08-12, 10:01:48

原始链接:http://www.zhu8fei.com/2020/04/21/various-object.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 zhu8fei@163.com

目录
×

喜欢就点赞,疼爱就打赏