我试图了解这两种模式,并对这些相似点和不同点感到疑惑。对我来说,他们的方式类似,因为他们似乎都在使用一步一步的过程。有人能否对这两种模式有所了解?我是否正确地说管道和过滤器模式将用于大规模应用和小规模应用中使用的构建器模式?很抱歉继续,但在构建器模式中,所有步骤是否同时发生,即在返回完成的对象之前传递给构建器的所有属性?
感谢。
答案 0 :(得分:2)
Pipes and Filters模式是Enterprice集成模式,而Builder pattern是面向对象设计模式之一。
这两种模式具有不同的语义:
如您所见,比较这两种模式是不正确的。但它们可以结合使用:使用Builder,您可以配置过滤器的内容
参与处理T
的消息类型。之后,可以使用配置的对象:
创建消息将通过其创建的端点(它将是管道) 传播
创建将处理消息的进程(甚至虚拟机实例,具体取决于应用程序)(这将是过滤器)
例如,您有图书销售系统:
在这种情况下,Pipes可能是TCP通道,Filters将处理订单。
普通用户的订购流程如下:
特权用户的订购流程:
可以看出,这两个过程相差一步。分支过程在用户授权后进行。在用户授权之后,过滤器#2(授权)必须生成并发送特定类型的消息:特权用户或普通用户。发送此消息后应反应不同的过滤器。过滤特权用户的折扣计算或普通用户的取款。可以使用Builder模式描述以声明方式进行的此配置。