看过不少的博客,都在解释着一个名词,控制反转,可是什么是控制反转,又有解释为控制的权利交给了容器处理,无论怎么解释,总以为仍是不清不楚的,比较晦涩难懂.而IOC确实包含了不少的东西,涉及到了代码解耦,设计模式,代码优化等问题.spring
Ioc和new 出一个新的对象有什么区别呢??这个一直我不是很理解,看了很久的书,对此有了模糊的理解,ioc是new对象的升华,ioc建立的实例是运行时期才能够肯定是哪一个对象,这样就增长了编程的灵活性.编程
在spring3.x实战中获得的例子.设计模式
1. 以前的写法优化
Public Class MoAttack{this
LiuDeHua ldh=new LiuDeHua();
}spa
直接写出演员对象,可是这样耦合过紧,要是临时更换演员呢??设计
2. 改进以后对象
Public Class MoAttack{接口
GeLi geli=new LiuDeHua();ci
geli.reponseAsk(“”);
}
经过接口,这样仍是具备很深的耦合.咱们的目的是,具体的演员和剧本无关,我能够随时随地的换演员.导演最大,
3. 控制反转
1. 控制
2. 反转
public class MoAttack implements ActorArrangable {
private GeLi geli;
public void injectGeli(GeLi geli) {
this.geli = geli;
}
public void cityGateAsk() {
geli.responseAsk("墨者革离");
}
}