软件架构风格

目录

1.数据流风格

1.批处理序列

2.管道过滤器

2.调用返回风格

1.主程序子程序

2.面向对象

3.层次结构

3.独立构建风格

1.进程通信

2.事件驱动系统

4.虚拟机风格

1.解释器风格

2.基于规则的系统

5.仓库系统

1.数据库系统

2.黑板系统

6.c2风格

7.过程控制/闭环风格


软件架构风格包含数据流风格,调用返回风格,独立构件风格,虚拟机风格,仓库风格,c2风格,过程控制/闭环风格。

1.数据流风格

数据流风格包含批处理序列,管道过滤器,在早期的编译和dos命令就会用到数据流风格。

1.批处理序列

批处理序列强调数据是整体处理,数据作为一个整体一个步骤处理完了再进行下一个步骤的处理。

2.管道过滤器

流处理,可以一条一条的处理。例如客户端请求处理软件,先解析http报文,然后在解析soap协议,这种逐步分解的我们就可以考虑管道过滤器风格。

2.调用返回风格

调用返回风格包含主程序子程序,面向对象,层次结构。

1.主程序子程序

构建分为主程序和子程序,子程序可以构成模块,主程序的正确性决定于调用子程序的正确性

2.面向对象

显示调用,构建是对象,连接件是对象交互的方式,对象是通过函数和过程调用来实现交互的,在这种结构风格中包含有封装,集成,多态,重用等特征。

3.层次结构

构件组织成一个层次结构,连接件通过决定层间如何交互的协议来定义,每层为上一层提供服务,使用下一层服务。它是一种常见的架构设计方法,能够有效简化设计,使设计的系统结构清晰,便于提高复用能力和产品维护能力。

例如网络中的7层协议,企业应用系统的架构,一般就分为表现层,业务层,持久层三个层次。

3.独立构建风格

独立构建风格包含进程通信,事件驱动系统

1.进程通信

强调构件是独立的过程,连接件是消息传递。

2.事件驱动系统

构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中其他构建的过程在一个事件中注册,当这个事件被触发,系统自动调用这个事件中所注册的所有过程。一个事件的触发导致另一个模块中过程的调用。

其是一种隐式调用,用事件的方式来完成任务,事件触发的结果本身是不知道的。

优点:

1.可重用性好。当构建加入到现有系统中时,只需要将其注册到系统的事件当中去

2.为改进系统提供了方便。当构建需要替换的时候可以直接替换而不用担心影响其他构建。

缺点:

1.放弃了对系统的直接控制。事件触发时不能确定其他构建是否会响应。

2.数据交换的问题。有时候数据需要在事件中传递,有时候需要依赖共享的仓库,管理起来比较麻烦。

4.虚拟机风格

虚拟机风格就是构建一个平台,允许其他功能运行在这个平台上,例如java在的虚拟机系统,其包含解释器和基于规则的系统。

代表词:灵活组合,自定义,某某专家系统

1.解释器风格

解释器风格通常包含完成解释工作的引擎。具有解释器风格的软件中含义一个虚拟机,可以仿真硬件执行过程和一些关键应用。题目出现灵活,自定义等词就可以考虑用解释器风格,如自定义地图,灵活组合等。

2.基于规则的系统

基于规则的系统包含规则集,规则解释器,一般用于人工智能领域,例如动物识别专家系统

5.仓库系统

仓库系统是以数据为中心的风格,其包含数据库系统,黑板系统,超文本系统

1.数据库系统

仓库最重要的形式,有2大类。一类是中央共享数据源,另一个是多个独立处理元素。

2.黑板系统

黑板系统包含知识源,黑板,控制三部分,黑板是一个全局的数据库,知识源响应黑板的变化。其通常应用在解决问题没有确定性算法的软件当中。

例如信号处理,问题规划,编译器优化。

以前的编译器用的管道过滤器风格较多,如果题目强调一步一步处理那选管道过滤器风格,如果强调一个集成编译平台,这个平台有多个内容,其他部分围绕数据,那我们就选择数据共享风格,没有数据共享就选黑板风格。

6.c2风格

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

7.过程控制/闭环风格

通过设置参数,并不断测量现有数据,将设定参数与现有值进行比较,以便接下来的动作。例如定速巡航。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值