多因素处理的设计模式

时间:2012-11-16 10:53:13

标签: c# design-patterns

我正在尝试为这个问题找到更好的模式/技术:

我有一些标准枚举说明X,Y,Z和我有一个过程,应该根据给定标准的给定组合产生不同的输出/结果。

组合被定义为一组规则,例如:

rule_B = new Rule(X.Value1, Y.Value3, z.Value2);
rule_A = new Rule(X.Value2, Y.Value1, z.Value3);

每个规则定义了标准的唯一组合,并非所有组合都可能具有规则(因为某些组合可能没有意义)。规则实例不起作用,它们只是将每个因子存储为唯一组合的容器。

我的问题是如何使用单个公共接口类执行一组特定的进程,例如:

class RuleExecutor {
    public void ExecuteBasedOnRule(Rule rule) {
        // Here is where I am stuck!!!!!!
    }
}

我可以使用什么样的设计模式/技术来执行X的值的3个步骤1,一个用于Y的值,一个用于在RuleExecutor中的Z,每个都根据它的步长值执行不同的过程。在C ++中,我可能会使用模板专业化,但C#似乎没有帮助我。

注意:在这个复杂的例子中有3个因素,其中包含一小组可能的值,在我想要的项目中,这些是非常大的,并且为每个可能的组合创建一个具体的类不是我想要的仔细考虑!

1 个答案:

答案 0 :(得分:1)

命令模式似乎合适。 您可以执行两个步骤:

  1. 使用所需的RuleExecutor
  2. 配置您的Rule
  3. 运行ExecuteBasedOnRule RuleExecutor方法。该方法应解析存储的配置并根据数据进行操作。
  4. 因此,我将使用两种方法定义一个接口:config(Rule)execute()

相关问题