面向对象编程中的继承与角色共享
1. 管理超类与子类之间的耦合
在面向对象编程中,超类与子类之间的耦合管理是一个重要的问题。以自行车相关的类为例, Bicycle
类包含了大部分抽象的自行车行为,如管理整体自行车尺寸、链条和轮胎尺寸等,但缺少 spares
方法的实现。
1.1 理解耦合
spares
方法的第一种实现方式最简单,但会导致类之间的耦合度最高。以下是 RoadBike
、 MountainBike
和 Bicycle
类的相关代码:
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
class Bicycle
# ...
def spares
{ tire_size: tire_size,
chain: chain }
end
end
这种实现方式虽然能让代码正常工作,但存在隐患。当子类忘