浅谈依赖注入
?? 最近在学习Spring和Angularjs,在学习的过程中依赖注入这个名词反复出现在各个文档和链接当中,迫使你不得不去了解下这个概念。依赖注入(Dependence Injection,DI)又和控制反转(Inversion of Control,IoC)有关。可以说DI是IoC的一种设计模式,按照DI的思路可以实现IoC。 public class StuffA{
private StuffB stuffB = new StuffB();
public void work(){
stuffB.doSomeThing();
}
}
public class StuffB{
public void doSomeThing(){
/*.some code */
}
}
??其实如果确定了这是一个永远不会变的需求这样写也无所谓。不过如果哪天需求改变了,我们不用StuffB了,这种情况就面临一个问题代码从头到尾都需要改,如果代码年旧失修,又是一个新人过来修改你的代码,那需要一个很大的勇气。所以一直强调的设计模式,耦合性之类的就是为了写出可复用,便于修改的代码。 public class StuffA{
private Stuff stuff;
public StuffA(Stuff stuff){
this.stuff = stuff;
}
public void work(){
stuff.doSomeThing();
}
}
??通过在构造对象时的方式来削弱这种依赖性。 public class StuffA{
private Stuff stuff;
public Stuff getStuff(){
return this.stuff;
}
public void setStuff(Stuff stuff){
this.stuff = stuff ;
}
public void work(){
stuff.doSomeThing();
}
}
??这种比较适合相依的物件和外部环境有互动的时候。 public class StuffA{
public void work(Stuff stuff){
stuff.doSomeThing();
}
}
参考链接: IoC容器 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |