看過不少的博客,都在解釋着一個名詞,控制反轉,可是什麼是控制反轉,又有解釋爲控制的權利交給了容器處理,無論怎麼解釋,總以爲仍是不清不楚的,比較晦澀難懂.而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("墨者革離");
}
}