前言
总体来说是为了代码的规范,每部分都有其作用
为了代码能够进行服用,而且层次关系比较好,对后面的工作人员进行维护也比较友好
一般一些大企业都会有一些代码的分层规定
比如阿里这些
-
开放接口层:封装 Service 方法暴露给 RPC 接口
通过 Web 封装成 http 接口
进行网关安全控制、流量控制 -
终端显示层:主要是模块的渲染,并且进行显示到终端
-
Web 层:对访问控制进行转发,各类基本参数校验
-
Service 层:具体的业务逻辑层
-
DAO层:数据访问层,与底层数据进行交互。
至于为什么要搞这些分层
主要基于两点:
- 单一职责
- 能捋清楚代码
层次介绍
因为在Java里面,做开发都要遵循一套模式MVC:
M——Model(模型,即JavaBean)
V——View(视图,即页面)
C——Controller(控制层,即与前端交互的类)
然后就是service、dao和controller:
- controller:控制层,接收前端传过来的数据
- service:业务层,处理制层传过来的数据
- dao:数据访问层,即把业务层传过来的数据存放在数据库
这样的设计都是方便开发中的维护,假如你写程序随便写,名称随便定义,然后再改bug的时候你会让开发者生不如死然后就是层与层之间互相不干扰,自己处理自己的事情
作用
将模块解耦
功能层次分明
目的是为了降低写代码和看代码的复杂度
将相关性高的代码放在一起
高内聚低耦合
分层是实现目的的手段
MVC和DDD都是实现方法