我有两个类,A 和 B。B 继承自 A,我想反转依赖关系。
A 类 { }
B 类:A { }
B类继承自A。这意味着B对A有一些依赖。
反转依赖关系的正确方法是什么?
我有两个类,A 和 B。B 继承自 A,我想反转依赖关系。
A 类 { }
B 类:A { }
B类继承自A。这意味着B对A有一些依赖。
反转依赖关系的正确方法是什么?
继承是一个暗示类之间紧密耦合的概念。
为了使用依赖注入,您需要创建一些“接缝”,正如 Michael Feathers 在有效使用遗留代码中所说的那样。在这里你可以找到Seam的定义:
接缝是您可以更改程序中的行为而无需在该位置进行编辑的地方。
当你有一个接缝时,你就有了一个可以改变行为的地方。
根据这个定义,您的示例中没有 Seam,这不一定是坏事。现在的问题是,为什么你觉得有必要在这个地方做依赖注入?
如果是为了举例,请不要在这里进行依赖注入。有些地方应用它并没有真正意义:如果你没有波动性,你为什么要这样做?
如果你真的觉得需要在你的项目中做一些类似的事情,你可能想把易变的概念从你的继承层次结构中解耦出来,并为这些部分创建一个 Seam:你可以有一个接口来抽象这些概念,在这个点可以有效地注入您的客户端类。