0

我有两个类,A 和 B。B 继承自 A,我想反转依赖关系。

A 类 { }

B 类:A { }

B类继承自A。这意味着B对A有一些依赖。

反转依赖关系的正确方法是什么?

4

1 回答 1

2

继承是一个暗示类之间紧密耦合的概念。

为了使用依赖注入,您需要创建一些“接缝”,正如 Michael Feathers 在有效使用遗留代码中所说的那样。在这里你可以找到Seam的定义:

接缝是您可以更改程序中的行为而无需在该位置进行编辑的地方。

当你有一个接缝时,你就有了一个可以改变行为的地方。

根据这个定义,您的示例中没有 Seam,这不一定是坏事。现在的问题是,为什么你觉得有必要在这个地方做依赖注入?

如果是为了举例,请不要在这里进行依赖注入。有些地方应用它并没有真正意义:如果你没有波动性,你为什么要这样做?

如果你真的觉得需要在你的项目中做一些类似的事情,你可能想把易变的概念从你的继承层次结构中解耦出来,并为这些部分创建一个 Seam:你可以有一个接口来抽象这些概念,在这个点可以有效地注入您的客户端类。

于 2012-07-13T07:53:54.703 回答