系统架构风格

tech2022-09-05  102

所有架构风格汇总如下:

类别

架构风格名

常考关键字及实例

简介

数据流

批处理

传统编译器,每个阶段产生的结果作为下一阶段的输入,区别在于整体。

一个接一个,以整体为单位

管道-过滤器

一个接一个,前一个输出是后一个输入。

调用/返回

主/子程序

 

显式调用,主程序直接调用子程序

面向对象

 

对象是构件,通过对象调用封装的方法和属性

层次结构

 

分层,每层最多影响其上下两层,有调用关系

独立构件

进程通信

 

进程间独立消息传递,同步异步

事件驱动(隐式调用)

事件触发推动动作,如程序语言的语法高亮、语法错误提示

不直接调用,通过实践驱动

虚拟机

解释器

自定义流程、按流程执行。规则随时间改变,灵活定义,业务灵活组合,机器人

解释自定义的规则,解释引擎、存储区、数据结构

规则系统

规则集、规则解释器、选择器和工作内存,用于DSS和人工智能、专家系统。

仓库

数据库

现代编译器的集成开发环境IDE,以数据为中心。

又称为数据共享风格。

中央共享数据源,独立处理单元。

超文本

网状链接,多用于互联网

黑板

语音识别、知识推理等问题复杂、解空间很大、求解过程不确定的这一类软件系统,黑板、知识源、控制。

闭环

过程控制

汽车巡航定速、空调温度调节,设定参数,并不断调整。

发出控制命令并接受反馈,循环往复达到平衡。

C2风格

 

构件和连接件、顶部和底部

通过连接件绑定在一起,按照一组规则运作的并行构件网络

下午案例分析常考比较的架构风格对比:

 

架构风格

主要特点

主要优点

主要缺点

适合领域

管道-过滤器

过滤器相对独立

功能模块复用:可维护性和可扩展性较强;具有并发性:模 块独立性高

不适于交互性强的应用,对于存在关系的数据流必须进行 协调

系统可划分清晰的模块:模块相对独立;有清晰的模块接口。

面向对象

力争实现问题空间和软件系统空间结构的一致性。

高度模块性:实现封装;代码共享灵活;易维护;可扩充性好

增加了对象之间的依赖关系

多种领域

事件驱动

系统由若干子系统构成且称为一个整体:系统有统一的目标:子系统有主从之分;每一个子系统有自己的事件收集和处理机制

适合描写系统组;容易实现并发处理和多任务可扩展性好具有类层次结构化代码

因为树型结构所以削弱了对系统计算的控制能力:各个对 象的逻辑关系复杂

一个系统对外部的表现可以从它对事件的处理表征出来。

分层风格

各个层次的组件形成不同功能级别的虚拟机;多层相互协同工作,而且实现透明

支持系统设计过程中的逐级抽象;可扩展性好:支持软件复用

不同层次之间耦合度高的系统很难实现

适合功能层次的抽象和相互之间低耦合的系统

数据共享风

采用两个常用构件中央数据单元和一些相对独立的组件集合

中央数据单元实现了数据的集中,以数据为中心

适合于特定领域

适合于专家系统等人工智能领域问题的求解

解释器风格

系统核心是虚拟机

可以用多种操作来解 释一个句子,灵活应 对自定义场景

适合于特定领域

适合于模式匹配系 统与语言编译器

闭环控制风

通过不断的测量被控对象, 认识和掌握被控对象:将控 制理论引入体系结构构建

将控制理论引入到计 算机软件体系结构中

适合于特定领域

该系统中一定存在 有目标的作用、信息 处理闭环控制过程。

最新回复(0)