- (一)怎么分层
-
- 阿里巴巴Java开发手册推荐分层
- 不同看法
- (二)每层什么作用
-
- controller层(类似于部门秘书)
- service层(类似于部门经理)
- DAO层、Manager层(类似于程序猿、采购)
- (三)分层的好处
-
- 解耦接口设计推荐
(一)怎么分层
阿里巴巴Java开发手册推荐分层

不同看法
阿里巴巴Java开发手册中推荐manager层可以和DAO层交互,并可以与多个DAO组合复合。我不推荐这么做,我认为DAO层和Manager层地位是一样的,不同的是DAO层调用的是数据库,Manager层调用的是第三方插件(南向接口或者缓存等)。DAO层和Manager层只提供增删改查等最基本的功能,至于组合复用提供完整的功能和事务控制应该交给Service层来做。
(二)每层什么作用
controller层(类似于部门秘书)
数据校验,非前后分离项目还会做前端路由控制等简单工作
service层(类似于部门经理)
service层提供的方法都是完整的功能,事务控制也在service层处理
DAO层、Manager层(类似于程序猿、采购)
只提供增删改查等功能,并且只能被自己的service调用
着重强调:DAO层和Manager层只能被自己的service调用。就像程序员、采购只做自己部门经理安排的工作一样,因为只有部门经理知道DAO、Manager做增删改查等的时候还需要做什么工作,反过来说只有增删改查等操作让对应的service控制,才能保证service的事务和功能的完整性
(三)分层的好处
- 职责明确:数据校验,事务控制和完整功能,操作数据库,操作缓存,操作第三方等
- 解耦:这个解耦是指模块解耦,比如说缓存更换,或者添加新的缓存,只在service处理就可以了
- 结构清晰,易于维护:只通过service层就可以清楚的知道该业务用到那些组件,方便理解和上手
- 好处太多了。。。
解耦接口设计推荐
第三方接口设计时候,接口中的参数不要使用第三方jar的对象,使用jdk提供的对象或者自己系统编写的对象。
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92845 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!