JavaEE PO VO BO DTO POJO DAO 整理总结

本文涉及的产品
数据传输服务DTS,同步至DuckDB 3个月
简介:

        佩服能将复杂难懂的技术,抽象成简单易懂事物的人。

        厌恶将简单易懂的技术,添加一堆专业术语将别人弄的头晕目眩的人。

       PO VO BO DTO POJO DAO 总体一览:

1.DAO[data access object]数据访问对象

  DAO层对开发人员黑盒,由架构师设计封装。

  在很长一段时间内,我将它理解为对数据库的访问,后面随着项目的积累。

  发现自己的理解相对狭隘,对数据访问不仅仅指的是对数据库的访问。

  假如A系统调用B系统的服务获取数据,这时候A系统对B系统访问数据对象的封装也可以称为DAO。

2.DTO[data transfer object]数据传输对象

  假设数据表中存在20个字段,但是在页面展示列表的时候,这20个字段显然都不会用到。

  我想对其中的5个字段进行展示,而且这5个字段展示的时候,也并不是数据库中他们原有的样子。

  还需要进行计算、截取、业务代码转名称 .....等等

  数据传输对象因此而被诞生,一是能提高数据传输的速度,二能隐藏后端表结构。

3.PO[persistant object]持久层对象

  持久对象属性和数据库中的字段是一一对应的,数据库中的一条数据可以理解为一个持久对象。

  因ORM框架的广泛使用而被引入到 JavaEE 项目设计当中。

4.BO[bussiness object]业务对象

  业务对象顾名思义是在业务处理中抽象出来的对象,里面除了get/set 方法外,也可以有对字段进行业务处理的方法。

  假设你要对一个班级进行业务处理,其中的学生、教师、甚至是桌椅板凳都是业务对象的组成部分。

  当然其中的学生、教室....都可以是和数据库对应的PO。

5.VO[value object]值对象

  值对象也可以称做页面对象,如果称做页面对象,那门它所代表的将是整个页面展示层的对象。

  可以由需要的业务对象进行的换算转换而来。

  如果称呼他为值对象的话,那门他可以理解为存放业务对象的一个地方。

  假设锅碗瓢盆分别为对应的业务对象的话,那门整个碗柜就是一个值对象。

4.POJO[plain ordiary java object] 简单java对象

  简单java对象应该是JavaEE世界里面最灵活的对象。

  在简单系统中,如果从数据库到页面展示都是POJO的话,它可以是DTO。

  如果从数据库中到业务处理中都是POJO的话,他也可以是BO。

  同样如果从数据库到整个页面的展示的话,它同样可以是VO。

 

小结:

  各个数据对象之间的转换是相当灵活的,在项目中可以定义上述对象的全部和其中的几种类型,这取决与架构师和需求。

  在大型项目中,架构师在项目初期的任务除了搭建起整个开发环境以外,定义在系统中流转的数据结构对象同样是重重之重。

  这项工作需要许多项目的积累和长期对软件开发的思考,多实践,多思考,提供最合适的数据对象解决方法,方能展现架构师的魅力。

 

作者:Orson 
出处:http://www.cnblogs.com/java-class/ 
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】 
如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】 
如果,您对我的博客内容感兴趣,请继续关注我的后续博客,我是【Orson】 

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段 声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 

转载:http://www.cnblogs.com/java-class/p/5439646.html

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
目录
相关文章
|
Java Maven
IDEA自带Maven添加阿里镜像
IDEA自带Maven添加阿里镜像
IDEA自带Maven添加阿里镜像
|
数据安全/隐私保护
太牛了!下载视频号视频用这工具!免费无水印!
太牛了!下载视频号视频用这工具!免费无水印!
|
监控 人机交互 芯片
西门子S7-200 SMART的功能和特点有哪些?STEP7-Micro/WIN SMART编程软件简介
西门子S7-200 SMART是西门子公司针对中国小型自动化市场客户需求设计研发的一款高性价比小型PLC产品。S7-200 SMART CPU将微处理器、集成电源、输入输出电路组合到一个设计紧凑的外壳中,已形成功能强大的小型plc。面板包含电源接线端子、直流24V电源输出端子、数字量输入输出接线端子、CPU状态指示灯、IO状态指示灯、存储卡插槽、以太网接口、RS485接口等。
西门子S7-200 SMART的功能和特点有哪些?STEP7-Micro/WIN SMART编程软件简介
|
小程序 数据库
微搭低代码中实现数据的联动选择
微搭低代码中实现数据的联动选择
微搭低代码中实现数据的联动选择
|
传感器 人工智能 达摩院
“行”稳致远,国网智能与阿里云联手解决电力机器人行业难题
9月6日,国网智能宣布与阿里云在导航系统领域展开发展合作,首轮聚焦在轮式巡检机器人产品。
698 0
“行”稳致远,国网智能与阿里云联手解决电力机器人行业难题
|
前端开发
html 空白汉字占位符
前端开发中,大家可能会遇到这样的问题:标题存在字数不一样的情况,但是产品大哥,让你要对齐。还必须对齐。他说他有强迫症
1441 0
|
Oracle Java 关系型数据库
jdk下载安装教程
本文介绍如何下载安装jdk,希望对大家有所帮助。
1389 0
jdk下载安装教程
|
存储 负载均衡 架构师
创业做一个App究竟要花多少钱?
创业做一个App究竟要花多少钱?
1600 0
创业做一个App究竟要花多少钱?
|
JSON 应用服务中间件 数据处理
SLS告警最佳实践——在通知中引用日志内容
在配置告警通知的时候,通常我们需要知道告警的触发详情。例如Nginx访问错误告警,我们需要知道错误的HTTP Status 分布,错误的机器IP等信息,并且需要将这些信息体现在通知中,以便在接收到告警通知后,能够一目了然地知道发生了什么事情。那么在创建告警规则的时候,我们就需要进行合理的配置,使得告警在触发后,可以将这些信息放在合适的位置发送给通知服务,从而在通知模板里可以被引用到,从而被正确地通知。
685 0
|
开发框架 算法 安全
易宝支付之请求参数| 学习笔记
快速学习易宝支付之请求参数
869 0
易宝支付之请求参数| 学习笔记