我目前正在为我正在进行的项目编写一系列专用数据结构类,我注意到它们或多或少都共享几个完全相同的属性和函数。
我既可以忍受重复代码,也可以让它们从共享基类继承,这样代码总量就会减少很多(这使得整个事情更易于维护)。但遗憾的是,我现在无法决定要做什么。
我或多或少了解继承路线的优点,但是当您将它与周围存在的重复代码进行比较时,它的缺点是什么?
对于“长期”项目,哪条路线更明智?
最佳答案
从设计的角度来看,继承违反了封装。通过从一个类继承,您将新类与父类的实现细节联系起来,对于继承类的特定实现,并非所有这些都是必需的。
例如,假设您有一个类 vehicle
。此类有许多私有(private)变量,例如 weight_
、maxSpeed_
和 fuelCapacity_
。
现在假设您继承了 bicycle
类。新类将包含与 fuelCapacity_
相关的所有详细信息,即使它们不是必需的。这种事情可能会很痛苦,因为对象变得越来越复杂,因为破坏父类的更改也会破坏继承类,即使它们实际上并不使用代码的 volatile 部分。
一个更安全的选择是 composition .
关于c++ - 使用继承来减少重复代码的缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37150859/