项目中会使用到各种各样的以“O”结尾的各种对象,一般的命名规则就是这个对象对应的业务加上这个对象作用。
业务是根据实际的项目走的,但是最后结尾的部分倒是有规律可循。
JavaBean
官方的定义如下:
A JavaBean is a Java Object that is serializable, has a nullary constructor, and allows access to properties using getter and setter methods.
除此之外,Javabean还有以下要求:
必须要有默认的构造器
每个属性都必须有对应的setter和getter
类必须要可序列化
POJO(Plain Old Java Object)
最为原始的Java对象,它不能继承自任何的其它对象,不能实现别的接口,不能包含注释。POJO本身特别容易和javabean搞混,其实它的范围要比JavaBean的大,所有的Javabean(虽然Javabean是可序列化的,但是序列化这个接口是空接口,所以来说不违反)都是pojo,但是不是所有的pojo都是Javabean,不过就算混淆了,好像也没什么问题,因为实际中确实把两者混为一谈。
VO(Value Object)
字面意思就是值对象,一般来说是web层向渲染引擎层传输过去的对象。比如有一个电商项目,那么一个商品的牌子就可以用一个VO来进行存储。
1 |
|
之后从数据库查询出来之后就可以封装这个对象成VO,然后从controller层返回给渲染层。
实际中最经常见到VO的地方应该就是Controller的参数里了,通过把HTTP 表单的数据封装成对应的Java的VO对象,便于之后的操作。
简单来说就是目前有一个实体类,封装了用户的所有信息。然后现在需要做一个登陆的功能,显然登录功能有用户名和密码就够了,此时如果用这个实体类接受会让人很疑惑,此时就可以创建一个VO对象,专门用来存放用户名密码来做登录使用。
DAO(Data Access Object)
里面封装了各种数据库的操作。比如一个标准的DAO应该就包含了增删改查这些方法。
DTO(Data Transfer Object)
就是数据在网络中传输的一个对象,其实它和VO可以说是一样的,因为VO本身就可以直接传输。