PO

全称为:Persistant Object,持久化对象,与数据库结构映射的实体,数据库中的一条数据即为一个 PO 对象。

BO

全称为:Business Object,业务对象,主要作用是把业务逻辑封装成一个对象,这个对象可以包括一个或多个其它对象。
比如一个简历 BO 中有教育经历,工作经历,社会关系等多个 PO 对象。

DTO

全称为:Data Transfer Object,数据传输对象,比如一张表有 100 个字段,那么对应的 PO 就有100 个属性(大多数情况下,DTO内部的数据结构来自多个表)但 view 层只需要显示 10 个字段,没有必要把整个 PO 对象传递到 client,这时我们就可以用只有这 10 个属性的 DTO 来传输给 client,这样也不会暴露 server 端表结构,到达客户端后,如果这个对象来对应页面显示,它的身份就转为 VO。

使用场景:

  • UserDTO 不应该返回用户密码。
  • UserDTO 包含归属部门名称,而 UserPO 只有 deptId,没有部门名称。
  • 后台表有 100 个字段,但前端展示只需要 10 个字段,减少数据传输。
  • 简历 ResumeDTO 包含教育经历、工作经历、社会关系等多个表的数据。

VO

全称为:View Object,主要对应页面展示的数据对象,一般继承自 PO,可以添加 PO 中没有的字段,用来逻辑处理以及其它消息存储。

DO

全称为:Domain Object,领域对象,从现实世界中抽象出的业务实体,它不是简单的 POJO,它具有业务领域逻辑。

DAO

全称为:Data Access Object,数据访问对象,一般所说的 DAO 层,用于连接数据库与外层之间的桥梁,并持久化数据层对象。

模型

  • 用户发出请求,表单的数据层被匹配为 VO。
  • 展示层把 VO 转换为服务层对应方法锁要求的 DTO,传输给服务层。
  • 服务层首先根据 DTO 的数据构造一个 DO,调用 DO 的业务方法完成具体业务。
  • 服务层把 DO 转换为持久层对应的 PO,调用持久层持久化方法,把 PO 传递给它完成持久化操作。

最新文章

  1. ReactJS入门(一)—— 初步认识React
  2. trie字典树详解及应用
  3. MS SQLServer 操作XML语句的存储过程
  4. Google Zxing 二维码生成与解析
  5. Dx unsupported class file version 52.0
  6. jquery 编码解码
  7. 互联网的寒冬来了,BAT都不社招了
  8. 《HeadFirst设计模式》读后感——对学习设计模式的一些想法
  9. SQL必知必会笔记(1)
  10. 各种LICENSE的作用--GET
  11. Codeforces 193D Two Segments 解题报告
  12. Docker集群实验环境布署--swarm【7 让docker客户端支持docker-compose】
  13. HDU-1686-KMP-水题
  14. NOSQL中的redis缓存数据库
  15. java:static详解
  16. SpringBoot整合Netty
  17. 【LOJ】#2532. 「CQOI2018」社交网络
  18. verilog语法实例学习(2)
  19. sparkSQL、dataframe
  20. jQuery 和 YUI (Yahoo User Interface) 各自的优缺点有哪些?具体的使用场景是怎样的?

热门文章

  1. Hyper-V 配置虚拟机内网及外网环境
  2. CF709B Checkpoints 模拟
  3. hdu3746 KMP-next数组的应用
  4. 阿里云 Ubuntu14.04 部署 LAMP
  5. Lucene.Net和盘古分词应用
  6. window.open()总结
  7. struts1学习
  8. eclipse+pydev 安装和配置过程
  9. 转 Django中的Form
  10. 工作ui(2)