软件体系结构笔记:分层模式

分层架构是常用的架构模式,对于一个大系统可以划分为几个子系统,各子系统位于不同的抽象层次。各层间上层依赖下层服务,下层不能依赖上层。

消息可以从上向下,也可以从下向上。自顶向下调用下层接口,称为请求。自低向上的通信,称为通知,一般使用回调方法,从而实现单路径耦合。

【分层的步骤】

1、定义抽象准则

2、根据准则定义抽象层数

3、给每个层命名并指定任务

4、指定服务

5、细化分层,重复上述步骤,直到一个稳定的分层结构

6、为每层指定接口

7、构建独立层

8、指定层间通信,分离临接层

9、设计错误处理策略

【分层的变体】

松散分层结构:注重性能,损失可维护性

继承分层结构:访问直接,依赖性强

【分层的优点】

分层架构模式是个可靠的通用模式,对于大部分应用它是个很好的开始,尤其当不知道哪种结构适合使用时。

它有如下几点优势:重用性好、标准化支持、局部依赖、可替换性

【分层的缺点】

分层主要有以下的缺点:影响多层次的修改;降低了效率;多层传递,重复的工作;层的粒度难以把握。

分层的多层传递中有现象被称为污水池反模式(architecture sinkhole anti-pattern)。该反模式描述的是这样的场景,请求流穿过架构的很多层,每一层只有少量的甚至没有业务逻辑。例如,假设展示层响应用户的请求获取客户信息,展示层将请求传递给业务层,业务层什么也不做,仅仅将请求直接传递给持久层,持久层执行SQL语句获取数据。数据在回传过程中没有经过任何的处理。

每个分层架构都可能会有一些场景落入污水池反模式。然而关键是分析这样的请求占了多少比例。通常80-20定律可用来分析是否落入了污水池反模式。当反模式的比例比较大时,你或许考虑将某些层开放,这时要注意缺乏层隔离,会使得以后修改时比较困难。

分层架构会使应用变得庞大,即使把表示层和业务层分成了单独的部署单元。这对某些应用不需要考虑,但是也会带来一些部署的隐患,如健壮性、可靠性、性能和可伸缩性。

【常用分层】

三层模型:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。

四层模型:表示层,应用逻辑层,领域模型层,数据库层

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,890评论 18 139
  • 推荐深度好文:原文链接,作者:张洋 序言 Perface “佛曰:苦海无涯,回头是岸。——佛教用语” 面向对象(O...
    不知公民阅读 792评论 0 4
  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 3,970评论 1 15
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,360评论 11 349
  • 并不是所有的爱 都非要占有 也许真的 一无所求 ———《热爱》
    清泰阅读 321评论 14 1