反转继承中的依赖关系

时间:2012-07-13 06:31:44

标签: dependency-injection

我有两个班,A& B. B继承自A,我想逆转依赖。

  

A类{}

     

B类:A {}

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

逆转依赖的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

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

为了使用依赖注入,你需要创建一些“Seams”,就像Michael Feathers在Working Effectively with Legacy Code中调用它们一样。 Here你可以找到Seam的定义:

  

接缝是指您可以在不改变程序行为的地方   在那个地方编辑。

     

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

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

如果是为了示例,请不要在此处执行依赖注入。有些地方应用它没有多大意义:如果你没有波动,你为什么要这样做呢?

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