我正在尝试为这个问题找到更好的模式/技术:
我有一些标准枚举说明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个因素,其中包含一小组可能的值,在我想要的项目中,这些是非常大的,并且为每个可能的组合创建一个具体的类不是我想要的仔细考虑!
答案 0 :(得分:1)
命令模式似乎合适。 您可以执行两个步骤:
RuleExecutor
Rule
ExecuteBasedOnRule
RuleExecutor
方法。该方法应解析存储的配置并根据数据进行操作。因此,我将使用两种方法定义一个接口:config(Rule)
和execute()
。