依赖管理与灵活接口设计
在软件开发中,依赖管理和接口设计是构建未来可靠应用的核心要素。下面将深入探讨依赖方向的管理以及如何创建灵活的接口。
1. 依赖方向管理
依赖总是有方向的,管理依赖的一个重要方法是控制其方向。
1.1 依赖反转
以 Gear
和 Wheel
类为例,通常是 Gear
依赖于 Wheel
或其 diameter
方法,但依赖方向也可以反转,让 Wheel
依赖于 Gear
或其 ratio
方法。
以下是依赖反转的示例代码:
class Gear
attr_reader :chainring, :cog
def initialize(chainring:, cog:)
@chainring = chainring
@cog = cog
end
def gear_inches(diameter)
ratio * diameter
end
def ratio
chainring / cog.to_f
end
# ...
end
class Wheel
attr_reader :rim, :tire, :gear
def initialize(rim:, tire:, chainring:, cog:)
@rim