层与管道和过滤器之间的区别?
Difference between Layers and Pipes and filters?
这两种设计模式有什么区别?它看起来与我非常相似,一个处理单元(层或过滤器)进行一些数据处理并将数据拉/推到另一个处理单元。单元 n
仅与 n+1
和 n-1
单元通信,存在定义特定单元提供的功能的接口。
有什么区别?
编辑:也许数据流应该是一个区别。在层流中可以top-down
、bottom-up
、and/or通信between
一些层里面。在管道和过滤器中,数据流从单位 1
开始并转到单位 n
(不返回)。
没有结构上的差异,只有意图和隐喻的差异,在脑海中唤起不同的画面。
分层架构(up/down 隐喻)的意图通常是通过不同的抽象级别进行映射,例如从业务级概念到低级网络或数据库操作,然后再返回。
管道和过滤器(管道隐喻)的意图通常是关于类似抽象级别的转换。
在组织方面,层和管道以及过滤器模式可能看起来很相似(一个组件接受输入并将结果传递给另一个组件),但在功能上它们并非如此。它们是架构模式。
如果我们按照定义:
管道和过滤器模式将较大的处理任务划分为一系列较小的独立处理步骤(过滤器),这些步骤由通道(管道)连接。
而在层模式中,每一层都与相邻层进行通信,并负责自己的一些处理,将请求传递给它下面的层并回答来自它上面的层的请求。
比较:
管道和过滤器模式允许系统由称为过滤器的小程序组装而成而分层系统是系统的不同层负责特定功能的系统系统的。
一个过滤器有一个输入和一个输出而分层架构风格中的每一层都是一个软件(或系统)包,具有定义明确的接口和一些应用程序中众所周知的依赖项。
过滤器被组装成一个链,其中每个过滤器从链中的前一个过滤器获取数据,处理数据,并将数据传递给链中的下一个过滤器而 在分层系统中,数据流可以是双向的,这样上层的所有请求都可以在 有或没有 下层的帮助下得到满足。
顺序可能无关紧要。例如您可以对消息进行身份验证,然后过滤消息的内容,或者您可以先过滤内容然后进行身份验证,而在分层系统中顺序总是相同的,不能互换。
希望对您有所帮助。
这两种设计模式有什么区别?它看起来与我非常相似,一个处理单元(层或过滤器)进行一些数据处理并将数据拉/推到另一个处理单元。单元 n
仅与 n+1
和 n-1
单元通信,存在定义特定单元提供的功能的接口。
有什么区别?
编辑:也许数据流应该是一个区别。在层流中可以top-down
、bottom-up
、and/or通信between
一些层里面。在管道和过滤器中,数据流从单位 1
开始并转到单位 n
(不返回)。
没有结构上的差异,只有意图和隐喻的差异,在脑海中唤起不同的画面。
分层架构(up/down 隐喻)的意图通常是通过不同的抽象级别进行映射,例如从业务级概念到低级网络或数据库操作,然后再返回。
管道和过滤器(管道隐喻)的意图通常是关于类似抽象级别的转换。
在组织方面,层和管道以及过滤器模式可能看起来很相似(一个组件接受输入并将结果传递给另一个组件),但在功能上它们并非如此。它们是架构模式。
如果我们按照定义:
管道和过滤器模式将较大的处理任务划分为一系列较小的独立处理步骤(过滤器),这些步骤由通道(管道)连接。
而在层模式中,每一层都与相邻层进行通信,并负责自己的一些处理,将请求传递给它下面的层并回答来自它上面的层的请求。
比较:
管道和过滤器模式允许系统由称为过滤器的小程序组装而成而分层系统是系统的不同层负责特定功能的系统系统的。
一个过滤器有一个输入和一个输出而分层架构风格中的每一层都是一个软件(或系统)包,具有定义明确的接口和一些应用程序中众所周知的依赖项。
过滤器被组装成一个链,其中每个过滤器从链中的前一个过滤器获取数据,处理数据,并将数据传递给链中的下一个过滤器而 在分层系统中,数据流可以是双向的,这样上层的所有请求都可以在 有或没有 下层的帮助下得到满足。
顺序可能无关紧要。例如您可以对消息进行身份验证,然后过滤消息的内容,或者您可以先过滤内容然后进行身份验证,而在分层系统中顺序总是相同的,不能互换。
希望对您有所帮助。