首页 > 其他 > 详细

管道-过滤器模式学习总结

时间:2018-05-21 22:31:37      阅读:359      评论:0      收藏:0      [点我收藏+]

管道-过滤器模式

模式定义及简介

??管道-过滤器模式是一种面向数据流的软件体系结构。主要由管道和过滤器组成,过滤器为一个具体的处理模块,接受输入数据然后进行一定的处理,最后进行输出;管道是传输数据的组件,用于将数据从一个过滤器的输出接口传送到下一个过滤器的输入接口。
??管道-过滤器模式可以很好地实现功能分解,通过将不同的功能用不同的过滤器进行实现,然后在用管道将各个过滤器相连,可以很好地实现封装与功能分解,利用管道-过滤器模式架构开发的软件可以很好地进行移植,提高了软件模块的重用性,同时也可以方便地将某一个旧过滤器用一个新过滤器进行更换,实现功能的修改或者更新,而不用修改软件项目中其他的过滤器。

模式结构图

技术分享图片

技术分享图片

模式具体结构组成

??管道-过滤器模式由两大组件构成。一个为过滤器,另一个为管道。
??过滤器:主要功能为从输入接口中读取数据,然后经过特定的处理,将结果数据置于输出接口。过滤器是一个独立的实体,只负责自身的处理,不用考虑其他过滤器的输入和输出数据。过滤器分为三类,分别为输入过滤器、处理过滤器和输出过滤器。
??管道:是连接各个过滤器的组件,负责过滤器间数据的传输,充当过滤器之间数据流的通道。

模式应用场景

??最典型的应用是编译系统,编译系统主要包括词法分析器,语法分析器,语义分析与中间代码生成器,优化器,目标代码生成器等对源程序进行处理的过程。可以将每个处理过程看做一个过滤器,然后通过管道进行连接,然后就组成了一个编译系统。
技术分享图片

??如上图所示源程序输入到编译系统,编译系统先经过词法分析过滤器,词法分析过滤器读取输入的数据,然后进行词法分析按词法规则得出各类单词,最后将分析得出的结果在输出接口输出;管道将该词法分析结果传送到语义分析过滤器,语义分析与中间代码生成过滤器检测程序代码有无语义错误,没有错误则生成中间代码并输出,若有错则进行错误处理;然后再经管道将中间代码传送到优化器,…按照过滤器处理,管道进行数据传送这种模式最终得到编译后的数据,这就是管道-过滤器的最典型的应用。

模式优缺点

优点:

  1. 符合高内聚、低耦合的设计原则,可以方便地对过滤器进行替换或删除等操作。
  2. 支持模块的重用,可以将单个独立的过滤器应用到其他软件系统中
  3. 支持并行执行。每个过滤器是一个独立的实体,可以单独运行,不受其他过滤器影响。

缺点:

  1. 不适合处理交互的应用。
  2. 传输的数据没有标准化,所以读入数据和输出数据存在着格式转换等问题,会导致性能的降低。

参考文献:

  1. 李小龙,毛文林. 管道-过滤器模式的软件体系结构及其设计[J]. 计算机工程与应用,2003,(35):114-115+182.
  2. 蒋庆. 新型管道—过滤器模式的研究及其应用[D].江西师范大学,2004.

管道-过滤器模式学习总结

原文:https://www.cnblogs.com/liuxining/p/9069476.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!