自行车类继承结构的优化与实现
1. 问题引入
在编程实践中,我们常常会遇到一些类结构设计不合理的情况。以自行车类为例,最初设计了一个 Bicycle 类,但随着需求的变化,出现了 MountainBike 类,此时问题就逐渐显现出来。
MountainBike 实例包含了公路自行车和山地自行车行为的混乱混合。这是因为 Bicycle 类是一个具体类,它将所有自行车通用的行为与公路自行车特有的行为结合在一起。当把 MountainBike 作为 Bicycle 的子类时,它会继承所有这些行为,无论这些行为是否适用。
1.1 类命名带来的问题
最初,设计一个通用的 Bicycle 类是合理的,因为当时可能只有公路自行车这一种类型。但当 MountainBike 出现后, Bicycle 这个名字就产生了误导。这两个类名暗示了继承关系,我们自然会将 MountainBike 作为 Bicycle 的子类来编写代码,但 Bicycle 类中的代码现在已经不适用了。
继承需要满足两个条件:
- 所建模的对象必须真正具有泛化 - 特化关系。
- 必须使用正确的编码技术。
目前 Bicycle 类将通用自行车代码与特定公路自行车
超级会员免费看
订阅专栏 解锁全文
520

被折叠的 条评论
为什么被折叠?



