用于添加功能的继承
Inheritance for adding functionality
我有一个关于类继承的简单问题。
假设我有class。它有一些基本的功能。现在我需要使用这个类,但我需要添加一些其他的功能,这些功能只针对这个目的。所以这个类的接口会被破坏。基本类在很多地方都以is的形式使用。
我应该从这些基本类派生吗?或者更好的解决方案?
更多细节:基本类是具有导入/导出XML、HTML和导航控件等功能的文本编辑器。它看起来很像stackoverflow的编辑器。我还需要添加一些方法这些方法只针对新目的
在c++中,继承(通常)不是为了代码重用。另一个选择是Composition,或者像Visitor或Decorator这样的模式。
我认为你可以使用组合,只是创建另一个类,并将这个特定的类作为成员,然后你可以实现任何功能,而不破坏主类的接口,并使用主类的所有当前方法。
如果你的类有函数a(), b()和c(),并且你添加了f(), g()和h(),而不修改a(), b()和c()的前置条件和后置条件,你的客户端不会注意到接口中的这个"变化"-它只是一个扩展,它将与你现有的代码兼容。在这种情况下,你可以"just do it"。
您的更改将如何影响现有代码?
相关文章:
- C++继承和相同的功能名称
- 有没有办法C++将给定类的功能限制为仅另一个类(不使用继承,朋友)?
- C++17 'inline variable' vs 'extern' 关键字继承自 C 的新功能
- 为什么虚拟继承即使不涉及虚拟功能也需要 vtable?
- 抽象类 A 由类 C 继承"through"类 B "intermediary"。如何声明虚拟功能?
- 使用继承和虚拟功能应用五个规则
- 继承多态性功能调用
- C++继承 - 覆盖功能,包括使用 "::" s、.h 文件和.cpp文件
- GCC称将功能与多个继承过载时,称其为模棱两可,但Clang和MSVC没有
- C 从同一基本模板类覆盖功能,具有多个继承模棱两可的函数调用
- 有关继承层次结构的问题,没有任何虚拟功能
- C 继承问题错误C2084功能已经具有主体
- 朋友功能是否继承?为什么基类朋友功能在派生的类对象上工作
- 对具有继承功能的结构使用初始值设定项列表
- 继承和虚拟功能
- 继承:从基类调用派生的类功能
- 在C 中继承类功能:一般问题,以更好地理解,如果有人可以指出我的错误
- 需要有关多个继承和可选功能覆盖C 的建议
- 朋友功能和继承在CPP中
- C++具有继承功能的模板部分专用化