美文网首页
DO、DTO等领域模型

DO、DTO等领域模型

作者: MikeShine | 来源:发表于2021-08-25 16:47 被阅读0次

    一. 写在前面

    在实际的工程项目开发中,对于模型的划分对于项目管理与规范开发十分重要。

    之前也看到很多关于 DTO、VO之类的数据结构。

    今天将这些系统的整理一下,以便对于工程项目有更深刻的理解。


    二. 多种领域模型

    根据集团开发规约,有以下领域模型(数据结构):

    [图片上传失败...(image-28e0b9-1631084636239)]

    POJO(Plain Ordinary Java Object, 普通Java对象) :这里所谓的普通是指,这些类里面只有 getter/setter/toString 等基本方法。

    1. DO(Data Object, 数据对象):

    • DO对象 和数据库中的 表table 是一一对应的。

    • 有些地方也叫做POPersisent Object, 持久化对象)。

    • 需要注意的是:DO/PO对象是不包括任何操作的。

    • 命名规范:如果是一个Student表,那么其对应的DO对象就是 StudentDO。

    2. DAO(Data Access Object, 数据访问对象):

    • DAO是为了操作数据库而存在的对象
    • 其将对数据库的操作封装起来,一般都是 CRUD 等基本的操作。

    3. DTO(Data Transfer Object, 数据传输对象)

    • DTO是用来做系统核心层和应用层之间传输数据的对象。

    • DTO最大的特点是,可以根据需要对数据进行截取

    • 与DO相比,DO中的对象是与数据库中记录的对象字段一一对应的。比如Student 的学号、性别、年龄等所有信息。但是DTO可以根据业务需求,只截取学号和性别,满足上层应用层的需求即可。

    4. BO(Business Object, 业务对象)

    • BO 是将 业务逻辑 封装成为一个对象,包括各种DO,以及对其的数据操作。
    • 举一个栗子,Student表 是 StudentDO,Score表 是 ScoreDO,PyisicalData表是 PyisicalDataDO,这三个DO组合起来形成了一个 StudentActionBO。

    直观理解一下,就是这里除了拿到DO的数据之外,需要根据自身业务逻辑对数据进行处理,比如这里的多一个 studentAction的评分标准,例如加权,对不同的 DO 数据进行处理。

    5. VO(View Object, 视图对象)

    • 对应于展示页面的对象。核心就是为了匹配前端页面的展示内容,专门做匹配的对象。
    • 举一个栗子,这里DTO返回的时间是 Date时间戳,但是前端需要展示的是xx年xx月xx日,则需要将DTO对象转换成为前端需要的VO。

    三. 一个栗子

    image.png

    这是一个学生管理系统的栗子:

    • 这里的 DB 层只列举了两个

    • 其他层的内容就是这个意思

    • 理解一下

    相关文章

      网友评论

          本文标题:DO、DTO等领域模型

          本文链接:https://www.haomeiwen.com/subject/qyceiltx.html