使用继承来减少重复代码的缺点是什么

What are the cons of using inheritance to reduce duplicate code?

本文关键字:代码 缺点 是什么 继承      更新时间:2023-10-16

我目前正在为正在进行的项目编写一系列专门的数据结构类,我注意到它们或多或少都共享几个完全相同的属性和函数。

我可以只处理重复的代码,也可以让它们从共享基类继承,这样代码总量就可以减少ALOT(这使整个事情更易于维护)。但遗憾的是,我现在无法决定该做什么。

我或多或少理解继承途径的优点,但当你将其与存在重复代码进行比较时,缺点是什么?

对于一个"长期"项目来说,哪条路线更明智?

从设计的角度来看,继承违反了封装。通过从类继承,可以将新类与父类的实现详细信息链接起来,而不是所有这些都是继承类的特定实现所必需的。

例如,假设您有一个类vehicle。这个类有许多私有变量,例如weight_maxSpeed_fuelCapacity_

现在假设您继承到类bicycle。新类将具有与fuelCapacity_相关联的所有详细信息,即使它们不是必需的。这种事情可能会很痛苦,因为对象变得更加复杂,因为破坏父类的更改也可能破坏继承类,即使它们实际上没有使用代码的易失部分。

一个更安全的选择是构图。