我正在尝试为这个问题获得更好的模式/技术:
我有一组标准枚举,比如 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!!!!!!
}
}
我可以使用哪种设计模式/技术来执行 3 个步骤:1 用于 X 的值,1 用于 Y 的值,1 用于在 RuleExecutor 内的 Z,每个步骤都根据其步骤值执行不同的过程。在 C++ 中,我可能会使用模板专业化,但 C# 似乎对我没有帮助。
注意:在这个复杂的例子中,有 3 个因素和一小部分可能的值,在我想要做的项目中,这些因素非常大,为每个可能的组合创建一个具体的类并不是我会轻易考虑的事情!