什么是软件设计的管道与过滤器模式:优点缺点

一个软件系统可以有多个数据源(data source)和多个数据汇(data sink)。整个软件系统的输入由数据源提供,它通过管道与过滤器相连。软件系统的最终输出由源自某个过滤器的管道流向数据汇。典型的数据源和数据汇包括数据库、文件、其他软件系统、物理设备等。

在管道和过滤器模式中,构件被称为“过滤器”(filter),而连接件被称为“管道”(pipe)。管道与过滤器模式是将软件系统的功能实现为一系列处理步骤,每个步骤封装在一个过滤器构件中。相邻过滤器之间以管道连接,一个过滤器的输出数据借助管道流向后续过滤器,作为其输入数据。

管道与过滤器模式示意图如图6-13所示。

图6-13 管道与过滤器模式示意图

过滤器、数据源、数据汇与管道之间协同工作,管道负责提取位于其源端的过滤器的输出数据。一般情况下,过滤器以循环方式工作,不断从管道中提取输入数据,并将输出数据压入管道,此种过滤器称为主动过滤器;被动过滤器是管道将输入数据压入位于其目标端的过滤器,过滤器被动地等待输入数据。

需要注意的是,如果管道连接的两端均为主动过滤器,那么管道必须负责它们之间的同步,典型的同步方法是先进先出缓冲器。如果管道的一端为主动过滤器,另一端为被动过滤器,那么管道的数据流转功能可通过前者直接调用后者来实现。

管道与过滤器模式的优点是可以通过升级、更换部分过滤器构件及处理步骤的重组,实现软件系统的扩展和进化;不足是仅适合采用批处理方式的软件系统,不适合交互式、事件驱动式系统。

版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。http://www.apmygs.com/528.html
返回顶部