实体类,vo,dto区别以及作用

  1. Entity(实体):实体通常指的是表示业务概念或对象的对象模型,被映射到数据库表中,用于持久化数据。实体通常包含属性和方法来描述其行为和状态。例如,在一个图书馆管理系统中,书籍可以是一个实体,它可能具有属性如书名、作者、出版日期等。
  2. VO(Value Object,值对象):值对象是一个简单的数据对象,其主要作用是封装一组相关的数据,并且通常是不可变的。值对象的主要特点是它们的相等性通常由其属性决定,而不是由标识符决定。在一些领域驱动设计(DDD)中,值对象用于表示概念上的值,例如日期范围、货币金额等。值对象通常不具有行为,而仅仅是一组数据的容器。
  3. DTO(Data Transfer Object,数据传输对象):DTO通常用于在不同的层之间传输数据,例如在应用程序的不同组件之间或者在客户端和服务器之间。DTO主要用于解耦数据的表示形式,从而避免将领域对象暴露给不相关的组件或服务。DTO通常是轻量级的,只包含应用程序需要传输的数据,而不包含业务逻辑。在使用RESTful API时,DTO常用于定义HTTP请求和响应的数据结构。

以上是一些概念接下来总结一下:

1.entity:与数据库表一一对应的实体类
entity就是与数据库表一 一对应的,数据库表中有什么字段,entity中就要有什么属性

2.VO:返回给前端的数据
个人的理解就是将前端需要的数据封装到VO中。前端需要展示的信息可能并不是同一张的表里的数据,例如前端想要展示菜品的分类信息那么需要的数据不光是菜品表里面的,一个菜品既关联所属的分类,还关联菜品的口味如辣度、冷热等,这时候就需要一个对象来封装这些数据一起返回给前端。

3.DTO:接收前端传来的数据
DTO定义的就是前端请求的数据,这些数据就使用一个DTO实体类来存放,因为这个请求的数据可能包含了多个实体类的字段。

举个例子,观察接口文档,前端传来新增菜品的数据时,需要保存该菜品的基本信息,还要保存它的口味和属于那个分类,这时候与数据库表对象的实体类就不能满足了,就需要单独封装一个DTO。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实体类(Entity)是指在领域模型中表示具体业务对象的类,它通常包含了业务逻辑和持久化状态的方法。在软件开发中,实体类一般与数据库中的表相对应。 VO(Value Object)是值对象的缩写,它是一种不可变的对象,用于封装一组相关的数据。VO对象通常用于数据传输和展示层,用于将数据从一个组件传递到另一个组件,它包含了一些属性和相关的getter和setter方法。 DTO(Data Transfer Object)是数据传输对象的缩写,它用于在不同层之间传输数据。DTO对象通常包含了多个属性,用于将数据从一个层传输到另一个层,它可以通过序列化和反序列化来实现数据的传输。 区别: 1. 定位不同:实体类用于表示具体业务对象,在领域模型中具有业务逻辑;VO用于封装数据用于传输和展示;DTO用于在不同层之间进行数据传输。 2. 可变性:实体类通常具有可变性,因为它包含了业务逻辑和状态的改变;VO通常是不可变的,因为它只用于封装数据;DTO可以是可变或不可变的,根据具体需求而定。 3. 方法:实体类通常包含了业务逻辑和持久化状态的方法;VO通常只包含了属性和相关的getter和setter方法;DTO通常只包含了属性和相关的getter和setter方法,用于数据传输。 需要注意的是,实际使用中,实体类VODTO的定义和使用可能会有一些差异,具体要根据项目需求和开发规范来决定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值