August 2021
Intermediate to advanced
450 pages
4h 46m
Chinese
在前面的例子中,我们通过组合(聚合)给Dog类提供了一个叫作Walkable的行为。从字面上看,在Dog类中创建了一个新的Walkable对象,如下面的代码所示:
虽然这样确实可行,但类的耦合度很高。为了将之前的例子中的类完全解耦,我们以之前提到的依赖注入的方式实现。依赖注入和控制反转经常被放到一起讨论。控制反转的一种定义在于使别人来负责依赖的实例创建,并传递给你。这就是我们接下来在示例中要做的。
由于并非所有的哺乳动物都能走路、飞行或游泳,为了开始解耦过程,我们创建了接口来代表多种类的哺乳动物的行为。在这个例子中,我们关注走路的行为,创建一个叫作IWalkable的接口,如图11.3所示。
图11.3 使用接口创建哺乳动物类
IWalkable的接口代码如下:
在接口里唯一的方法就是walk(),方法的实现留给具体的类。
注意,Dog类扩展自Mammal类,且实现了IWalkable接口。此外,Dog类还提供了一个引用和一个构造函数,构造函数提供了注入依赖的机制。 ...
Read now
Unlock full access