保险网站建设优缺点,老网站不要了做新站需要怎么处理,如室室内设计网站官网,服装设计自学零基础技术公众号#xff1a;Java In Mind(Java_In_Mind),欢迎关注#xff01;背景我相信#xff0c;刚开始学习接触企业代码的时候#xff0c;一定会发现#xff0c;工程中充斥着各种XO#xff1a;DO、VO、DTO、DAO#xff0c;还有各种名词#xff1a;POJO#xff0c;JavaB…技术公众号Java In Mind(Java_In_Mind),欢迎关注背景我相信刚开始学习接触企业代码的时候一定会发现工程中充斥着各种XODO、VO、DTO、DAO还有各种名词POJOJavaBeanDomain等等这些貌似看起来都一样又好像用在不同的地方记得之前一个前端同事调侃说“我不想学Java各种OOO脑壳疼”这里结合自己的理解对这几个名词做些介绍。何为POJOPOJO(Plain Ordinary Java Object)即简单Java对象就是一个我们最常见的普通Java对象这个概念是被大家叫出来的它具有一些属性然后提供对应的getter和setter如下public class Foo {private String name;private String type;public String getName(){return this.name;}public void setName(String name){this.name name;}public String getType(){return this.Type;}public void setType(String type){this.type type;}}何为JavaBeanJavaBean可序列化的POJOsun在早期有对其规范(JavaBeans Spec)它是Java中的可重用组件主要规范约定如下JavaBean为公共类并且具有一个空构造函数所有属性为私有属性提供getter和setter不应该有公共属性实现序列化接口java.io.SerializableJavaBean已经成为Java的一种规范也是Java社区的共同语言许多工具框架也是遵循JavaBean的规范的例如Spring的BeanUtils一些Json工具都是基于JavaBean的规范来实现的这些都是基于约定所以也有人把JavaBean叫为可以持久化的POJO。何为DODO(Domain Object)领域对象也就是ORM框架中对应数据库的对象业务实体例如对现实世界中的用户建模抽象出来的DO可以叫为UserDO通常情况下它用于与数据库的数据交互通常也是一个JavaBean。何为POPO(Persistent Object)持久化对象主要用于持久化层与数据库对应通常也是ORM框架中的实体对象例如使用JPA时候的Entity与数据库表做映射通常是一个JavaBean。何为DTODTO(Data Transfer Object)数据传输对象顾名思义就是用于传输数据的对象通常用于处于不同架构层次或者不同子系统之间的数据传递或者用于外部接口参数传递以便提供不同粒度不同信息的数据以免造成困惑干扰通常也是一个JavaBean。何为VOVO(Value Object)就是用于保存数据的对象在提供给页面使用的时候也有人解释为View Object就是对应页面展示数据的对象。何为DAODAO(Data Access Object)数据访问对象与数据库做交互的对象提供不同的接口访问数据库来实现对数据库的操作而接口使用的数据交互通常就是PO或者DO通过它可以使用面向对象的方式来与数据库交互。总结DO、PO、VO、DTO等其实都是一个JavaBean只是应用的范围不同表示的意义不同而这些不同是Java这么多年来形成的一种约定这种习惯形成Java程序员之间一种共识DO和PO大部分时间是一样的不过PO更倾向于有状态的对象例如使用Hibernate的时候通过DAO操作过的对象会被框架所持有如果一旦对其操作在Session关闭的时候会写回数据库这个时候使用PO就要非常小心特别是与其他业务层交互的时候最好转成DTO或者VO提供数据不能把持久化对象暴露出去不然可能会导致数据被修改在使用这类对象的时候我们还是要明白其意义然后在合适的场景使用毕竟这是Java形成的通用语言想要读懂他人代码就要理解想要他人能读懂自己的代码就要遵循