用于添加功能的继承

时间:2011-11-30 10:08:21

标签: java c++ oop

我有关于类继承的简单问题。

假设我上课了。它有一些基本功能。 现在我需要使用该类,但我需要添加一些仅针对该目的的其他功能。所以我的那个类的界面将被打破。基本类在许多地方使用,形式为。

我应该从这些基础班派生出来吗?还是更好的解决方案?

更多细节:基本类是文本编辑器,具有导入/导出到XML,HTML和导航控件等功能。它看起来像stackoverflow的编辑器。 我需要添加一些仅用于新目的的方法。

3 个答案:

答案 0 :(得分:2)

在C ++中inheritance is (usually) not for code-reuse。替代方案是Composition,或VisitorDecorator等模式。

答案 1 :(得分:0)

你可以使用我想的组合,只需创建另一个类并让这个特定的类成为一个成员,然后你可以实现任何功能而不破坏主类的接口并使用主类的所有当前方法。

答案 2 :(得分:0)

如果你的类有函数a(),b()和c(),你添加f(),g()和h(),而不修改a(),b()和c的前置条件和后置条件(),您的客户不会在界面中注意到这种“变化” - 它只是一个扩展,它将与您现有的代码兼容。在这种情况下,你可以“只做”。

现有代码将如何受到更改的影响?