定义
什么是Layers模式
Layers模式也叫分层模式,或者N层模式
- 分层模式里的组件被分成几个平行的层次,每一层都代表了应用的一个功能
- 分层架构中的每一层都着特定的角色和职能。
类型
架构类模式
模式图
特点
-
分层隔离
分层隔离保证了每层之间的独立性,但是也增加了冗余,即便某层没有任何业务处理,也要通过这一层。
-
开闭原则
开闭原则指的是如果某层是开放的,那么请求可以绕过这一层直接访问下一层。开闭原则降低了整个程序的复杂度,但同时引入了层改变时所影响范围的扩大。
Layers模式有什么好处?
- 分层无需知道其他层如何去做,每层负责其所负的责任。
- 架构中的某一层的改变不会影响到其他层:这些变化的影响范围限于当前层次。
- 层与层之间接口标准化,可替换性。
缺点
- 效率较低
- 容易引起雪崩,某一层出现问题可能导致整个链路卡死
适用场景
Layers模式是最常见的软件架构模式,比如传统开发中的三层模式:表现层,业务层,数据访问层。表现层负责用户体验/交互,业务层负责具体的业务实现,数据访问层负责操作具体的数据库。
-
典型的3层架构模式
当业务复杂时可以扩展业务层,根据开闭原则,Business层可以跨过Support层
软件设计中的应用,比如在Mybatis中的一个调用链
- Executor
Mybatis执行器,负责SQL动态语句生成及缓存维护
- StatementHandler
处理Statement的参数设置及执行
- ResultSetHandler
将resultSet集合转为List
- TypeHandler
将jdbcType转为javaType或自定义的类型
- ResultHandler
对结果做额外的处理
每一层都有特定的功能,从而产生一句sql或一个接口函数到一个java对象的转换