IOC
1. Ioc 是什么?
看过很多的博客,都在解释着一个名词,控制反转,但是什么是控制反转,又有解释为控制的权利交给了容器处理,不管怎么解释,总觉得还是不清不楚的,比较晦涩难懂.而IOC确实包含了很多的东西,涉及到了代码解耦,设计模式,代码优化等问题.
Ioc和new 出一个新的对象有什么区别呢??这个一直我不是很理解,看了好久的书,对此有了模糊的理解,ioc是new对象的升华,ioc创建的实例是运行时期才可以确定是哪个对象,这样就增加了编程的灵活性.
2. 实例对比
在spring3.x实战中得到的例子.
1. 之前的写法
Public Class MoAttack{
LiuDeHua ldh=new LiuDeHua();
}
直接写出演员对象,但是这样耦合过紧,要是临时更换演员呢??
2. 改进之后
Public Class MoAttack{
GeLi geli=new LiuDeHua();
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("墨者革离");
}
}