工厂模式和继承

时间:2013-08-16 18:55:47

标签: c++ inheritance cross-platform multiple-inheritance factory

这是在C ++中:

假设我有一个Control类,它有虚拟方法并且有两个实现,一个是Windows,一个是Linux。使用CreateControl()方法,我创建了ControlWindowsControlLinux,它是Windows或Linux实现。

我还有一个继承自Button的{​​{1}}类,而Control也有两个实现。 这是一个简单的图表:

Class diagram 但是,在Button类中,我需要例如访问ButtonWindows类中定义的方法和成员,但如果不直接从ControlWindows继承并因此具有多重继承,则无法执行此操作设计。然后我会有ControlWindows类的多个成员实例。

可以通过使用虚拟继承来解决,但是如果可能的话,这会产生性能影响。

0 个答案:

没有答案