面向对象编程中的继承与角色共享:原理、实践与优化
1. 管理超类与子类之间的耦合
在编程实践中,我们常常会遇到需要管理超类与子类之间耦合的情况。以自行车类为例,当前的 Bicycle 类已经包含了大部分抽象的自行车行为,如管理整体自行车尺寸、链条和轮胎尺寸等。然而,它还缺少 spares 方法的实现。
spares 方法的实现有多种方式,不同实现方式会导致超类和子类之间的耦合程度不同。紧密耦合的类会相互依赖,难以独立更改。下面我们来看两种不同的实现方式。
1.1 简单但耦合紧密的实现
首先是一种简单的实现方式,但它会产生紧密耦合的类。以下是 RoadBike 和 MountainBike 类当前的 spares 方法实现:
class RoadBike < Bicycle
# ...
def spares
{ chain: '11-speed',
tire_size: '23',
tape_color: tape_color }
end
end
class MountainBike < Bicycle
# ...
def spares
super.merge(front_shock: front_shock)
end
end
MountainBike
超级会员免费看
订阅专栏 解锁全文
11万+

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



