另一个'是否有这样的设计模式?'

时间:2012-08-17 13:09:11

标签: c# design-patterns

我有两个单独的类,ClassA和ClassB,它们派生自相同的基类,但具有不同的业务逻辑。我需要定义第三个类ClassC,它也派生自相同的基类。这个类将是现有两个类的组合,即,根据某些标准,每当调用ClassC的DoSomething()方法时,我想从ClassA或ClassB调用该方法(这些不是静态方法),基于某些标准。 (请注意,对于ClassC的每个实例,确定我是否需要ClassA或ClassB逻辑的标准都可以更改)。是否有特定的设计模式可以帮助我开始这个?感谢。

2 个答案:

答案 0 :(得分:5)

我听起来你需要看看州或战略模式。你基本上想要的是委托而不是继承。

答案 1 :(得分:3)

好像你需要使用合成而不是继承。 看看复合模式:http://en.wikipedia.org/wiki/Composite_pattern 在维基百科示例中,它用于实现树状结构。在您的示例中,您没有树,因此您只需应用自定义逻辑并调用ClassA或ClassB实现,而不是迭代子项。