使用继承来减少重复代码的缺点是什么
What are the cons of using inheritance to reduce duplicate code?
我目前正在为正在进行的项目编写一系列专门的数据结构类,我注意到它们或多或少都共享几个完全相同的属性和函数。
我可以只处理重复的代码,也可以让它们从共享基类继承,这样代码总量就可以减少ALOT(这使整个事情更易于维护)。但遗憾的是,我现在无法决定该做什么。
我或多或少理解继承途径的优点,但当你将其与存在重复代码进行比较时,缺点是什么?
对于一个"长期"项目来说,哪条路线更明智?
从设计的角度来看,继承违反了封装。通过从类继承,可以将新类与父类的实现详细信息链接起来,而不是所有这些都是继承类的特定实现所必需的。
例如,假设您有一个类vehicle
。这个类有许多私有变量,例如weight_
、maxSpeed_
和fuelCapacity_
。
现在假设您继承到类bicycle
。新类将具有与fuelCapacity_
相关联的所有详细信息,即使它们不是必需的。这种事情可能会很痛苦,因为对象变得更加复杂,因为破坏父类的更改也可能破坏继承类,即使它们实际上没有使用代码的易失部分。
一个更安全的选择是构图。
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在Linux for Windows上编译C++代码时出错
- 我的字符计数代码计算错误.为什么
- 孤立代码块在结构中引发异常
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 此代码是否违反一个定义规则
- 为什么我的代码在输出中增加了93天
- 在C代码中使用#Define NullPTR有没有缺点
- C++错误处理-使用std::pair或std::tuple返回错误代码和函数返回的缺点
- 使用继承来减少重复代码的缺点是什么
- 在Java中使用本机代码的优点和缺点
- 用Visual Studio c++编译器编译C代码有任何(与性能相关的)缺点吗?