别乱分层,PO、VO、DAO、BO、DTO、POJO 到底应该用在哪里,你知道吗

news/2024/11/28 7:31:35/
  • 一、PO :(persistant object),持久对象

  • 二、VO :(value object),值对象

  • 三、DAO :(Data Access Objects),数据访问对象接口

  • 四、BO :(Business Object),业务对象层

  • 五、DTO Data Transfer Object数据传输对象

  • 六、POJO :(Plain Old Java Objects),简单的Java对象


一、PO :(persistant object ),持久对象

可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro

  • 视频教程:https://doc.iocoder.cn/video/

二、VO :(value object) ,值对象

通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.

PO只能用在数据层,VO用在商业逻辑层和表示层。各层操作属于该层自己的数据对象,这样就可以降低各层之间的耦合,便于以后系统的维护和扩展。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud

  • 视频教程:https://doc.iocoder.cn/video/

三、DAO :(Data Access Objects) ,数据访问对象接口

DAO是Data Access Object数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。

J2EE开发人员使用数据访问对象(DAO)设计模式把底层的数据访问逻辑和高层的商务逻辑分开.实现DAO模式能够更加专注于编写数据访问代码.

DAO模式是标准的J2EE设计模式之一.开发人员使用这个模式把底层的数据访问操作和上层的商务逻辑分开.一个典型的DAO实现有下列几个组件:

  1. 一个DAO工厂类;

  2. 一个DAO接口;

  3. 一个实现DAO接口的具体类;

  4. 数据传递对象(有些时候叫做值对象).

具体的DAO类包含了从特定的数据源访问数据的逻辑。

四、BO :(Business Object),业务对象层

表示应用程序领域内“事物”的所有实体类。这些实体类驻留在服务器上,并利用服务类来协助完成它们的职责。

五、DTO Data Transfer Object数据传输对象

主要用于远程调用等需要大量传输对象的地方。比如我们一张表有100个字段,那么对应的PO就有100个属性。但是我们界面上只要显示10个字段,客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO

六、POJO :(Plain Old Java Objects),简单的Java对象

实际就是普通JavaBeans,使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接.其中有一些属性及其getter、setter方法的类,有时可以作为value object或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法

 


http://www.ppmy.cn/news/241571.html

相关文章

小米运动蓝牙耳机重新配对_小米运动蓝牙耳机怎么连接手机

小米运动蓝牙耳机怎么连接手机,对于这个网友们并不了解,小米运动蓝牙耳机面向喜欢运动的朋友,支持无线蓝牙连接手机端,解放双手摆脱有线的束缚,还支持同时连接两台手机,下面小编就来跟大家讲一讲这款耳机的连接步骤,赶紧跟着小编了解一下吧。 小米运动蓝牙耳机怎么连接手…

小米真蓝牙耳机说明书_【小米真无线蓝牙耳机Air 2评测使用说明书介绍】快充|降噪|蓝牙5.0|开盖即连|快捷操作_摘要频道_什么值得买...

小米真无线蓝牙耳机Air 2评测使用说明书介绍(快充|降噪|蓝牙5.0|开盖即连|快捷操作) 配件方面,我就不给大家多说了,除了一条Type-C充电线,以及一份说明(保修)文件外,就没有其他东西了。 先来看看充电盒的外观设计。小米真无线蓝牙耳机Air 2的充电盒采用了“白色简约”风格设…

android判断是否是蓝牙耳机,Android 检测是否连接蓝牙耳机

前言 欢迎大家我分享和推荐好用的代码段~~声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net 雨季o莫忧离:http://blog.csdn.net/luckkof 正文 BluetoothAdapter adapter BluetoothAdapter…

Linux蓝牙耳机软件,Linux下蓝牙耳机的配置与测试

一、在kernel中启动蓝牙支持 在kernel中使用.config作kernel setting Device Driver -> Networking Support -> (M) Bluetooth Sub system Support 二、安装软件包 yum -y install bluez bluez-libs bluez-utils 在rpm.pbone.net下载btsco软件包,并安装: sudo rpm -ivh…

真无线蓝牙耳机哪款延迟低?2020新款游戏专属蓝牙耳机盘点

耳机,相信大家对它并不陌生,不管是运动,办公或是日常娱乐都会用到它。不过随着技术的发展,耳机的形态也发生了翻天覆地的变化,从以前的有线耳机到了现在的无线蓝牙耳机,而真无线耳机的出现就是蓝牙耳机发展…

【Linux系统进阶详解】Linux命令date超细精讲、服务器企业级时间同步ntpdate介绍与实践

1. Linux命令date超细精讲 date命令在Linux系统中用于显示或设置系统时间。其基本语法如下: date [OPTION]... [+FORMAT]其中,[OPTION]是可选参数,用于设置date命令的行为,[+FORMAT]是可选的日期格式字符串,用于控制输出的日期格式。 下面是一些常用的选项: -s, --set…

耳塞检测_曾经很烂的无线耳塞,但它们现在很不错

耳塞检测 I hate wires. For a long time I’ve wanted to exclusively use wireless earbuds, but they just haven’t been good enough. It was impossible to pair them over Bluetooth, they sounded awful, and the battery life lasted about fifteen minutes. Things, …

Three.js camera初探——转场动画实现

背景 首先简单介绍一下three.js,three.js是用javascript写的基于webGL的第三方3D库,通过它可以在网页中进行3D建模,结合上TweenMax.js动画库,在网页中实现3D动画效果就变得很简单了。 这是three.js建模的简单流程图例&#xff1…