java为什么要分为service层,dao层,controller层?
·
分层是最简单的系统设计思想,其目的是抽茧剥丝,把系统从复杂水平分解为简单的逻辑切面。
再配合业务功能模块的垂直划分,一个系统就被分解为很多功能和实现及其简单的小单元。
那么在这个情况下,就可以实现大规模的协作开发协作开发:
- 每个开发者只只需要按规范实现一个个很微小的单元。
- 每个单元都跟同层的其他单元长得一摸一样,但是相互之间没有依赖关系。
- 每个单元都仅仅依赖于自己下层的单元。
- 我们可以基于单元来评估工作量和分配任何。
- 最后所有的小单元开发完毕由整体性的框架来负责装配和运行起来。
对于事务,异常处理,日志规范等通用性的非功能需求,可以做到这个大框子里去,这就是所谓的分层框架或者脚手架。这样也就区分了功能需求和非功能需求。
这种框架在Java里,一般就是用Spring,所以Spring在2001年诞生以后给了Java在大规模开发领域一个质的飞跃。
在最简单的web系统下,我们用MVC及其变体:
- 数据访问层DAL/DAO,以及实体 DO/EO
- 业务处理层Service/Facade,这一层一般有事务
- 控制粘合层Controller,这一层提供对外的访问入口Endpoint
实际上,根据我们要处理的系统业务复杂度,我们可以分出来更多不同的层级:
业务集成层,数据集成层,原子服务层,组合服务层,渠道整合层等等等。。。
比如下面是某个四大行中某家的分层:

更多推荐
所有评论(0)