1

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

4

2 回答 2

5

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

于 2012-08-17T13:10:55.753 回答
3

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

于 2012-08-17T13:18:28.093 回答