管道--过滤器是一种比较早期的软件设计思路,主要思路是将软件系统看成各种功能模块的组合,功能模块从输入集合读入数据流,并在输出集合产生输出数据流,它最典型的应用是在编译系统。
阅读目标
在本文中,你将获得以下知识:
- 了解管道-过滤器风格的设计思路
- 使用该设计风格的时机和原因
- 案例
- 管道过滤器风格的优缺点
目录
简介
管道-过滤器模式的体系结构是面向数据流的软件体系结构。每个功能模块都有一组输入和输出,功能模块从输入集合读入数据流,并在输出集合产生输出数据流,在系统的构件中计算了一个数据集来产生另外一个数据集。在管道过滤器风格中,功能模块称作过滤器(Filter);功能模块间的链接可以看作输入、输出流之间的通路,所以称作管道(Pipe)。
原因和时机
管道-过滤器风格的特征之一在于过滤器的相对独立性,即过滤器独立完成自身功能,相互之间无需进行状态交互,且各个过滤器之间无需直到它的输入和输出管道所连接的过滤器的存在。每个过滤器仅仅需要对输入管道的输入流数流进行限制,并保证输出管道的输出数据流有合适的内容,并不知道连接在其输入、输出管道上的其他过滤器的实现细节。
使用管道的过滤器的时机在于需要将一个复杂任务拆解为一系列可管理的、离散的服务,并将它们组织成一条管道。在确保每个基本构件的函数满足单一职责原则,特定的输入总是产生相同的输出时,可以创建这样的一个黑盒,将其拼装起来组成的完整软件结构。
管道-过滤器风格的软件体系适合用在并行计算系统上,各个构件之间组成的系统相互独立,不存在数据共享的问题,在并行计算完成之后,各个子系统的结果汇总,就完成了计算任务。在早期的计算机的计算任务中比较常见,计算机只用来做计算,而不考虑系统交互。
案例
编译器就是经典的管道-过滤器风格

管道-过滤器模式是一种早期的软件设计思路,常用于编译系统。这种模式将软件视为一系列独立功能模块(过滤器)的组合,每个模块处理输入数据流并产生输出数据流。在编译器中,如预处理、编译、汇编和链接都是这种模式的实例。优点包括模块重用、易于维护和扩展,支持并发计算。但其不适合交互式系统和需要数据共享的情况。
最低0.47元/天 解锁文章
5549

被折叠的 条评论
为什么被折叠?



