第五章 软件体系结构风格
1.管道过滤器风格
特征:
(1)构件即过滤器(Filter),对输入流进行处理、转换,处理后的结果在输出端流出。而且,这种计算常常是递进的,所以可能在所有的输入接受完之前就开始输出,可以并行地使用过滤器。
(2)连接件位于过滤器之间,起到信息流的导管作用,即管道(Pipe)。
(3)每个构件都有输入/输出集合,构件在输入出读取数据流,在输出处生成数据流。
(4)过滤器必须是独立的实体,它们不了解信息流从哪个过滤器流出,也不需要知道信息将流入哪个过滤器。它们可以指定输入的格式,可以确保输出的结果,但是它们可能不知道管道之后将会是什么样子,过滤器之间也不共享状态。
(记住)管道-过滤器模式的特性之一是过滤器的相对独立性,即过滤器独立完成自身功能,相互之间无须进行状态交互。此外,各过滤器无须知道输人管道和输出管道所连接的过滤器的存在,仅仅需要对输人管道的输人数据流进行限制,并保证输出管道的输出数据流有合适的内容,但它们并不知道连接在其输人、输出管道上的其他过滤器的实现细节。并且,整个管道过滤网络的最终输出和网络中各个过滤器执行操作的顺序无关。
优点:
(1)由于每个构件的行为不受其他构件的影响,因此,整个系统的行为比较易于理解。
(2)支持功能模块的复用。
(3)具有较强的可维护性与可扩展性。
(4)支持特殊的分析
(5)支持并发执行。
2.黑板模式
“黑板”模式类似于这样一个情形,即让专家们坐在真实黑板前并一起工作来解决一个问题。每个专家独立评估解法的当前状态,并可在任何时间到黑板上添加、更改或删除信息。人们往往要决定接下来谁去访问黑板。在黑板模式中,如果可用的组件超过一个,仲裁者(moderator)组件决定程序执行的顺序。