【软件体系结构】软件体系结构风格

本文详细介绍了多种软件体系结构风格,包括管道-过滤器模式、面向对象、事件驱动、分层系统、仓库与黑板风格,以及模型-视图-控制器等,探讨了它们在系统设计中的应用和优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5.1    软件体系结构风格概述

        多年来,人们在开发某些类型软件过程中积累起来的组织规则和结构,形成了软件体系结构风格。

        软件体系结构风格,是总结人们设计经验而形成结构较为巩固、组织较为统一的形式,是一种适合于多种场合的相似结构的抽象。

        软件体系结构设计的一个核心问题是,能否使用重复的体系结构模式,即能否达到体系结构级的软件重用。

5.2    基本风格解析

5.2.1    管道-过滤器

        管道-过滤器模式下,每个功能模块都有一组输入和输出。

        功能模块从输入集合读入数据流,并在输出集合产生输出数据流,即功能模块对输入数据流进行增量计算得到输出数据流。

        管道-过滤器模式下,功能模块称作过滤器(Filter)。

        功能模块间的连接可以看作输入、输出数据流之间的通路,所以称作管道(Pipe)。

         如果要建立一个必须处理或转换输入数据流的系统,用单个组件实现会过于臃肿,需求不容易变动,故选用管道过滤器风格。

        管道-过滤器体系结构模式,把系统任务分成几个序贯的处理步骤。这些步骤,通过系统的数据流连接,一个步骤的输出,是下一个步骤的输入。每个处理步骤由一个过滤器组件实现。过滤器消耗和转发增长的数据,在产生任何输出之前,消耗所有输入,以达到低延迟并能够真正地并行处理。系统的输入,由诸如文本文件等数据源提供。输出流入数据汇点,如文件、终端。数据源、过滤器和数据汇点由管道顺序连接起来。实现相连处理步骤间的数据流动。通过管道联合的过滤器序列叫做处理流水线。

        过滤器必须是独立的实体,不了解信息流从哪个过滤器流出,也不需要知道信息将流入哪个过滤器。可以指定输入的格式,可以确保输出的结果,但是可能不知道在管道之后将会是什么样子。过滤器之间,也不共享状态。

5.2.2    数据抽象和面向对象风格

        必须修改所有显式调用它的其他对象,并消除由此带来的一些副作用。例如,如果A使用了对象B,C也使用了对象B,那么C对B的使用所造成的对A的影响,可能是预想不到的。

        在这种体系结构中,数据表示和相关原语操作都被封装在抽象数据类型中。在这种风格中,对象是构件,也成为抽象数据类型的实例。对象与对象之间,通过函数调用和过程调用来进行交互。

5.2.3    基于事件的隐式调用风格

        系统中的其它构件中的过程,在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发,就导致了另一模块中的过程的调用。

        

5.2.4    分层系统风格

        其中,每一层软件,建立在低一层的软件层上。 位于同一层的软件系统或子系统,具有同等的通用性,在下一层的软件比在上一层的软件通用性更强。一个层次可视为同等通用档次的一组(子)系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值