类似处理步骤的设计模式,但略有不同

时间:2014-10-12 02:05:04

标签: c# design-patterns

实现一个功能的好设计模式是什么,其中数据处理非常相似,除了变化可能只有几个步骤......我最初认为责任链可能是合适的......但它感觉不是正确的选择..如果我知道合适模式的名称,我会在网上搜索它......但我不知道在这里使用什么模式。所以请建议一个。

要清楚一个例子 -

情景1 步骤1 第2步 第3步 第4步

情景2 步骤1 步骤A. 第3步 第4步

希望以最小化代码重复的方式实现该功能。

我确实意识到某些东西必须在开始时将所需的步骤连接在一起,就像工厂一样,基于场景。

2 个答案:

答案 0 :(得分:0)

您所描述的内容可以通过流水线解决,其中一组步骤链接在一起以通过“管道”传递数据。在不同的语言中有不同的方法来实现这一点,但这里有一个使用.NET(C#)中的数据流流水线的示例:http://msdn.microsoft.com/en-us/library/ff963548.aspx以及使用Apache Commons的Java替代方案:http://commons.apache.org/sandbox/commons-pipeline/pipeline_basics.html

答案 1 :(得分:0)

在您的示例中,在我看来,当序列/步骤始终相同但是一个或多个步骤具有不同的实现时,Template pattern会更合适。 如果步骤数变化很多,例如完全不同的步骤顺序,有时只需几步就可以跳过某些步骤而不是Strategy pattern更好的解决方案。

但是,如果您需要在对象上应用不同的规则(如图形过滤器),那么管道将更合适。只要一个“过滤器”完成,您就可以将对象提供给管道中的下一个