1.管道/过滤器风格:
特征:系统中构件之间通过数据流松散耦合。也就是说构件之间的依赖仅仅是数据流,而不是通常的接口函数调用或消息传递。
典型应用:linux操作系统管道机制,在编译器、信号处理领域。比如,编译器一般由词法分析、语义分析、语法分析、代码生成和优化多个处理环节,如果将每个环节看做一个构件的话,那么他们之间的交互就是预定义好的数据流。
其它说明:本模式在实现上可以有许多不同的变化,主要包括:
(1)、主动和被动:在linux例子中管道被设计成被动的,而过滤器被设计为主动的,实际实现中可以有多种变化。比如,过滤器也可以设计为被动过滤器,等待管道主动发出读、写的交互操作。
(2)、多出口管道:管道一般被设计为单入口单出口的形式,形成的系统拓扑一般是线性结构,也可以设计多出口管道,使得一个管道同时为几个过滤器提供数据,相应形成的系统拓扑是有向图。