实体类(VO,DO,DTO)的划分

实体类(VO,DO,DTO)的划分

什么是“实体类”

实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。实体类有两方面内容,存储数据和执行数据本身相关的操作。
在这里插入图片描述

POJO(plain ordinary java object) 简单无规则 java 对象

最简单的实体类是POJO类,含有属性及属性对应的set和get方法,只有属性字段及 setter 和 getter 方法!。

领域模型中的实体类

领域模型中的实体类分为四种类型:VO、DTO、DO、PO,各种实体类用于不同业务层次间的交互,并会在层次内实现实体类之间的转化。

业务分层为:视图层(VIEW+ACTION),服务层(SERVICE),持久层(DAO)

相应各层间实体的传递如下图:
view视图层也就是controller层,service层写逻辑实现,dao是与数据交互的层 1、用户发出请求(可能是填写表单),表单的数据在展示层被匹配为VO
2、 展示层把VO转换为服务层对应方法所要求的DTO,传送给服务层。
3、服务层首先根据DTO的数据构造(或重建)一个DO,调用DO的业务方法完成具体业务。
4、 服务层把DO转换为持久层对应的PO(可以使用ORM工具,也可以不用),调用持久层的持久化方法,把PO传递给它,完成持久化操作。
5、对于一个逆向操作,如读取数据,也是用类似的方式转换和传递,略。

DAO(data access object) 数据访问对象

DAO 中包含了各种数据库的操作方法。通过它的方法 , 结合 PO 对数据库进行相关的操作。夹在业务逻辑与数据库资源中间。配合 VO, 提供数据库的 CRUD 操作。

PO(persistant object) 持久对象

通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的 java 对象。最简单的 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。 PO 中应该不包含任何对数据库的操作。(DTO和数据库自段一一对应,PO可以不用)

DO(Domain Object)领域对象

就是从现实世界中抽象出来的有形或无形的业务实体。

DTO(Data Transfer Object):

数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象

VO(View Object):

视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fengtangjiang

您的支持是我前进的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值