Layers模式

定义

什么是Layers模式

Layers模式也叫分层模式,或者N层模式

  • 分层模式里的组件被分成几个平行的层次,每一层都代表了应用的一个功能
  • 分层架构中的每一层都着特定的角色和职能。

类型

架构类模式

模式图

Layers模式_第1张图片
image.png

特点

  • 分层隔离

分层隔离保证了每层之间的独立性,但是也增加了冗余,即便某层没有任何业务处理,也要通过这一层。

  • 开闭原则

开闭原则指的是如果某层是开放的,那么请求可以绕过这一层直接访问下一层。开闭原则降低了整个程序的复杂度,但同时引入了层改变时所影响范围的扩大。

Layers模式有什么好处?

  • 分层无需知道其他层如何去做,每层负责其所负的责任。
  • 架构中的某一层的改变不会影响到其他层:这些变化的影响范围限于当前层次。
  • 层与层之间接口标准化,可替换性。

缺点

  • 效率较低
  • 容易引起雪崩,某一层出现问题可能导致整个链路卡死

适用场景

Layers模式是最常见的软件架构模式,比如传统开发中的三层模式:表现层,业务层,数据访问层。表现层负责用户体验/交互,业务层负责具体的业务实现,数据访问层负责操作具体的数据库。

  • 典型的3层架构模式


    Layers模式_第2张图片
    image.png
  • 当业务复杂时可以扩展业务层,根据开闭原则,Business层可以跨过Support层

Layers模式_第3张图片
image.png

软件设计中的应用,比如在Mybatis中的一个调用链

Layers模式_第4张图片
image.png
  • Executor

Mybatis执行器,负责SQL动态语句生成及缓存维护

  • StatementHandler

处理Statement的参数设置及执行

  • ResultSetHandler

将resultSet集合转为List

  • TypeHandler

将jdbcType转为javaType或自定义的类型

  • ResultHandler

对结果做额外的处理


每一层都有特定的功能,从而产生一句sql或一个接口函数到一个java对象的转换

你可能感兴趣的:(Layers模式)