java笔记

对象拷贝优雅解决方案Mapstruct

概念

接下来介绍DTO,DO,BO,VO
POJO可以看着是VO、BO、DTO、DO的抽象总称
DTO( Data Transfer Object):数据传输对象
DTO是来绑定表现层中的数据,与实体Entity不同,DTO是指数据在页面和业务层逻辑,比如当客户在页面提交了表单后,业务层先为这个数据构造了一个DTO对象,然后业务方法内部将DTO对象转为实体对象,然后通过这个实体对象去调用数据库的信息。从这个过程可以看出DTO对象是处理显示层和业务层的数据传递,Entity对象是处理业务层和数据库之间的数据传递。

DO( Data Object):领域对象
DO是从现实世界中抽象出来的有形或无形的业务实体,它与DTO不同,DTO是处理数据在页面与业务层之间的流动,而DO像是在业务层里给用户分角色,将用户角色的权限和用户的信息封装。

BO( Business Object):业务对象
将数据通过一定的业务逻辑进行展示的业务逻辑展现层,主要作用是把业务逻辑封装为一个对象,这个对象可以包括一个或多个其他的对象。其中包含了业务方法和业务属性,在处理业务时就可以针对BO去处理业务。

VO( View Object):视图对象
于绝大部分的应用场景来说,DTO和VO的属性值基本是一致的,两个都是POJO,这个是在实现层面上,对于设计层面来说,概念上还是应该存在VO和DTO,因为两者有着本质的区别,DTO代表服务层需要接收的数据和返回的数据,而VO代表展示层需要显示的数据。在需求明确,客户端只有一个的时候是没有必要将VO和DTO分开的,而在不明确而且一个展示页面可能需要多个DTO的数据组成时就可以考虑用上VO。总的来说VO主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象。然后用一个VO对象在控制层与视图层进行传输交换。
————————————————
原文链接

你可能感兴趣的:(java,java)