今天接触了管道模式,在这里总结一下自己的理解。不足之处请各位多多指教
在软件开发中,我们会听到三个词,就是流、管道和过滤器。
我认为:
流:数据
管道:数据传输的通道(载体)
过滤器:过滤掉在管道中不符合要求的数据
原始数据经过管道传输到另一端产生最终数据。
在生活中,好比 原水经过管道(一层层的过滤,沉淀、去杂质、消毒)到管道另一端形成了纯净水。
在系统中,我们经常会根据业务逻辑对一个数据集进行频繁的处理、我们通常可以把它都封装在BLL中,
这个BLL就可以看作是一个管道,通过一系列的if else判断来满足业务逻辑的需求,最终过滤出最终的数据,
这种方式可以达到目的,但是不够灵活变通,如果我要添加或修改一个业务需求,就要去整理整个的逻辑实现。(模块内高内聚)
通过现象看本质,我们不可能把所有原水的过滤放在一个管道中去提纯,将一个大的处理流程进行详细的划分,
划分成每个小模块,每个模块只关心自己的业务逻辑处理,然后将它们有序的结合起来。这样的划分,
就相当于在过滤纯净水的管道,加了若干个阀门,我们把处理的逻辑放在每个阀门上,然后有序的组合,
第一道阀门调节什么,第二道调节什么..... 经过一层层处理,得到最终数据。
如ASP.NE