项目白手起家之 Java 对象的解读
一切皆对象
Java 语言是现在是后端的主流语言,基于类的形式,比如 MVC 模式下,控制层 controller 与转换层,
在程序开发的过程中会有很多的类给我们使用,一般我们常见的都是比较有含义的实体类,比如简单的数据类型,
开放接口层:可直接封装 Service 方法暴露成 RPC 接口;通过 Web 封装成 http 接口;进行网关安全控制、流量控制等。
终端显示层:各个端的模板渲染并执行显示的层。当前主要是 velocity 渲染,JS 渲染,JSP 渲染,移动端展示等。
Web 层:主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。
Service 层:相对具体的业务逻辑服务层
Manager 层:通用业务处理层,它有如下特征:
对第三方平台封装的层,预处理返回结果及转化异常信息;
对 Service 层通用能力的下沉,如缓存方案、中间件通用处理;
与 DAO 层交互,对多个 DAO 的组合复用。
DAO 层:数据访问层,与底层 MySQL、Oracle、Hbase 等进行数据交互。
外部接口或第三方平台:包括其它部门 RPC 开放接口,基础平台,其它公司的 HTTP 接口
简单一个实体类中的属性代表,当然类中使用的都是一些实际能用到的字段,我们称之为:
以上的图中正确的展示了数据交互过程中,一些必要的类的 object 的别名叫法
DO:数据表名:
数据访问对象是一个面向对象的数据库接口
用于数据库中最直接操作 crud 的类(简称数据访问类)
在我开发流程中,都是访问 controller 调用 service 层——》dao 层,然后是 mapper 映射出最后到 dao 层的实现方法,四层的一个结构
就是我们常说的 do: 因为是直接操作于表结构的
Dto: 数据传输对象
数据传输中的(接口方法的返回值和接口入参等)
是对于固定实现具体的业务功能而确定的方法;——-》由于封装的方法在过程中会具体的映射实现,mapper.xml 的,防止 sql 注入的过程
简单来说就是我们需要具体封装一个方法去确定,我们的返回值,入参等——需要这个类作为操作数据表的一个中间 object
Vo: 前端页面显示对象
这个对象的出现是在前端页面上展示来形成的,理论上后端输出的数据格式字段等,dto. 但是前端显示的话可能要考虑用户的体验,从而就分离出来了一个 vo 的 object 的对象供前端来使用;
POJO:DO/DTO/BO/VO 的统称
所有的实体类交互的对象都可能称为是 pojo 的对象
简单就是可以有属性,自己实现 Lombok 中的 @data 注解的方法,get/set,toString 的方法
阿里巴巴的规范中对于各种对象建立规约:
版权声明: 本文为 InfoQ 作者【卢卡多多】的原创文章。
原文链接:【http://xie.infoq.cn/article/6d5b01bb60959f0d18a890bcd】。文章转载请联系作者。
评论