软件体系结构-03-层次体系结构概述

层次体系结构概述

层次系统

在层次系统中,系统被分为若干个层次,每个层次由一些列构件组成

下层构件向上层构件提供服务,上层构件被看作是下层构件的客户端

层次系统的基本组成

  • 构件:各层次内部包含的构件
  • 连接件:层间的交互协议
  • 拓扑结构:分层
  • 拓扑约束:对相邻层间交互的约束

层次系统的特点

  • 优点
    • 支持基于抽象程度递增的系统设计,设计者可以把一个复杂的系统按递增的步骤进行分解
    • 支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层
    • 支持重用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可以定义一组标准的接口,而允许各种不同的实现方法
  • 缺点
    • 并不是每个系统都可以很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来
    • 很难找到一个合适的,正确的层次抽象方法

分层模式

分层模式

某一层中的构件一般只与同一级别中的对等实体或较低级别中的构件交互

两种分层方法

  1. 严格分层
  2. 松散分层

严格分层

  • 优点
    • 修改简单
  • 缺点
    • 效率低

松散分层

允许构件与位于塔下面的任意层中的组件进行交互

  • 优点
    • 松散方法可以改变效率,因为系统不必将简单调用从一层转发到下一层
  • 缺点
    • 在层之间不提供相同的隔离级别,这使得在不影响较高层的情况下唤出较低层变得更困难

分层系统中的交互模式

分层系统中的两种交互模式

  • 由上而下的交互模式
  • 由下而上的交互模式

由上而下模式

  • 外部实体与系统中的最高层交互
  • 一个传入调用可能导致多个传出调用
  • 可能会使用松散分层的方法
  • 顶层服务的调用并不一定会到达(调用)所有层

由下而上模式

  • 外部实体与系统中的最底层交互
  • 客户端只能使用最底层的一组服务

二者区别

  • 由上而下
    • 较高层直接调用较低层
    • 信息和控制通常被描述成请求
  • 由下而上
    • 较低层通过事件,回调和委派来与较高层通信
    • 信息和控制被描述为通知

分层系统的几个例子

  • DBMS的"三级模式-两层映像"
  • ISO/OSI网络的分层模型
  • 计算机操作系统的层次结构
  • C/S
  • B/S
  • 信息系统的典型分层结构

分层设计的过程

分层设计的过程

  1. 定义抽象准则
    • 松散耦合
    • 只应与同一层及其下一层的构件存在依赖关系
    • 易变性
    • 通用性
  2. 定义抽象层数
    • 层数越多,越须慎重:导致不必要的系统开销
    • 层数太少:导致系统结构混乱不清
  3. 给每个层命名并指定他们的任务
  4. 设计层次内部的构件
  5. 定义接口与指定相邻层间的通信
    • 自上而下
    • 自下而上
    • 双向模式
  6. 弱化相邻层之间的耦合
    • 单项耦合:改变N层不需要考虑对N+1层的影响,只需保证N层的接口保持不变即可
  7. 设计错误处理策略
    • 考虑如何处理错误
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值