pojo是什么(pojo实体类设置别名)

序大家好,我是猎物。Java是一种面向对象的语言。里面有很多名词宾语,比如层次域模型中的PO,VO,DAO…等。这些名词是什么意思?今天,我们来聊聊。在解释各种

大家好,我是猎物。

Java是一种面向对象的语言。里面有很多名词宾语,比如层次域模型中的PO,VO,DAO…等。这些名词是什么意思?今天,我们来聊聊。

在解释各种名词之前,先放一张图。看完图,你会有一个直观的感受。

pojo是什么(pojo实体类设置别名)插图

用户发出请求(可能是填写表单),表单的数据在展示层被匹配为VO。展示层把VO转换为服务层对应方法所要求的DTO,传送给服务层。服务层首先根据DTO的数据构造(或重建)一个DO,调用DO的业务方法完成具体业务。服务层把BO转换为持久层对应的PO(可以使用ORM工具,也可以不用),调用持久层的持久化方法,把PO传递给它,完成持久化操作。对于一个逆向操作,如读取数据,也是用类似的方式转换和传递。

目录

一、VO是什么二、DTO是什么?

2.1 VO和DTO的区别

2.2 VO和DTO的应用

三、BO是什么?

3.1博与DTO的区别

四、PO是什么?五、DO是什么?六、DAO是什么?七、POJO是什么?

一、VO是什么?

VO(视图对象):显示层对象,通常是Web传输到模板渲染引擎层的对象。

二、DTO是什么?

DTO(数据传输对象):数据传输对象,由服务或管理器传输。通常用于不同架构级别或子系统之间的数据传输,或用于外部接口参数传输,以提供不同粒度、不同信息的数据,避免混淆和干扰。但在这里,我一般指的是表示层和服务层之间的数据传输对象。

2.1 VO和DTO的区别

从设计层面来说,VO和DTO是有本质区别的。DTO表示服务层要接收和返回的数据,而VO表示表示层要显示的数据。因此,VO对象的属性可能比DTO对象的属性少,并且它们的值可能不同。
例如:
servie层有一个获取用户信息的方法,返回的d to格式如下,其中只对性别属性进行了语义定义:1-男性,2-女性,0-未知。

{"姓名& # 34;:"猎物& # 34;"性& # 34;:"1""年龄& # 34;:"20"}对于展示层,可能需要用“帅哥”代表男性,“美女”代表女性,“秘密”代表未指明。而且,不需要显示年龄,所以VO是

{"姓名& # 34;:"猎物& # 34;"性& # 34;:"帅哥& # 34;2.2 VO和DTO的应用VO和DTO在概念上是不同的,但在实际项目开发中,根据具体的业务场景,在实现上可以将VO和DTO合二为一(注:是实现层面)。比如在需求非常明确稳定的情况下,不需要区分VO和d to,那么VO就可以退役,只用一个DTO。为什么退役的是VO而不是DTO?回到设计层面,服务层的职责仍然不应该与表示层相结合。所以,拿前面的例子来说,DTO仍然不能使用“帅哥”作为“性别”属性,这种转换应该依赖于页面的脚本(js)或其他机制。

在某些情况下,虚拟组织和DTO需要共存。比如一个内容比较多的页面需要一个“大视图”,组成这个大视图的所有数据都需要调用多个服务,返回多个d to进行组装。

三、BO是什么?

BO(业务对象):业务对象。可以理解为PO的组合,其主要功能是将业务逻辑封装到一个对象中,该对象可以包含一个或多个其他对象。比如一份有教育经历、工作经历、社会关系等的简历。你可以对应一个PO代表你的学历,一个PO代表你的工作经历,一个PO代表你的社会关系,然后设置一个对应的BO来处理你的简历。每个业务对象都包含这些销售点,因此您可以处理业务对象的业务逻辑。

3.1 BO和DTO的区别

首先,是观念上的差异。DTO是表示层和服务层之间的数据传输对象(可以认为是两者之间的协议),而BO是现实世界中各种业务角色的抽象,既包含数据又包含行为,是一个可以参与领域逻辑的完整对象。

四、PO是什么?

PO(持久对象):持久对象,与持久层的数据结构(通常是关系数据库)形成一一对应的映射关系。如果持久层是关系数据库,那么数据表中的每个字段(或几个字段)对应PO的一个(或几个)属性。

简单来说:PO只是用来表示数据,没有任何数据操作。PO是数据库中的一条记录。PO的数据结构对应于数据库中的表,表中的记录是PO对象。通常PO中除了get和set没有其他方法,相当于实体。这两个概念是一致的。

五、BO是什么?

DO的概念现在有两个主要版本。

一个是阿里巴巴的开发手册中的定义,DO( Data Object)这个等同于上面的PO。另一个是在DDD(Domain-Driven Design)领域驱动设计中,DO(Domain Object)这个等同于上面的BO。六、DAO是什么?

DAO(数据访问对象):一个数据访问对象,用来表示一个数据访问对象。DAO用于访问数据库,包括插入、更新、删除、查询等操作。,与PO一起使用。DAO一般在持久层,完全封装了数据库操作。对外公开的方法使得上层应用不需要关注任何与数据库相关的信息。

基本没有相互转换的可能性和必要性,主要用于封装对数据库的访问。通过它,POJO可以持久化到PO中,VO和DTO可以和PO组装在一起。

七、POJO是什么?

POJO(普通官方Java对象):一个简单普通的Java对象。在一个POJO被持久化之后,它就是PO。它是直接传递的,传递的过程是DTO,直接用来对应表示层的是VO。

上面提到的PO、VO、DTO统称为POJO,而DAO、BO一般不是POJO,只是提供一些调用方法。

标签

至此,相信大家对VO、DTO、DO、PO的概念已经有了清晰的认识。但在实际开发过程中,并没有贯彻这一理念,可能是一个VO类接管天下。因为系统的复杂程度和协作程度是不一样的,绝对不需要教条主义,所有的概念都要用。在同一个团队里保持同样的理念就好。

感谢您的阅读。如果文章对你有帮助,请点赞转发,争取你的支持。如有不足,请在评论区留言并改正。谢谢~ ~

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/230170.html

发表回复

登录后才能评论