类似处理步骤的设计模式,但略有变化

本文关键字:有变化 设计模式 处理 | 更新日期: 2023-09-27 18:26:22

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

举一个例子——

场景1步骤1步骤2步骤3步骤4

场景2步骤1步骤A步骤3步骤4

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

我确实意识到,一些事情必须在一开始就把必要的步骤联系在一起,就像工厂一样,基于场景。

类似处理步骤的设计模式,但略有变化

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

在您的示例中,当序列/步骤总是相同,但一个或多个步骤有不同的实现时,模板模式似乎更合适。在步骤数量变化更大的情况下,例如完全不同的步骤顺序,有时只有几个步骤,有时跳过一些步骤。策略模式将是更好的解决方案。

但是,如果您需要在对象上一个接一个地应用不同的规则(如图形过滤器),则管道将更合适。一旦一个"过滤器"完成,您就将对象交给管道中的下一个。