名詞解說:IOC和DI,AOP

一、定義

IOC:反轉資源獲取的方向。(傳統的資源查找方式要求組件向容器發起請求查找資源作爲迴應,容器適時的返回資源,應用了IOC後則是,容器主動地將資源推送給它所管理的組件,組件所要做的僅是選擇一種合適的方式來接受資源。“查找的被動形式”)

DI:IOC的另一種表述方式。組件以一些預先定義好的方式接受來自如容器的資源注入。

二、例子

舉個簡單的例子:

有兩個類:

class A{}

class B{

          private A a;

          public void setA(A a){

                   this.a = a;

      } 

}

對於普通容器:

A a = getA();

B b = getB();

b.setA(a);

對於IOC容器:

B b = getB();

三、IOC的前生今世

(1)分離接口與實現


這樣的話Service層就要知道前面三個類,耦合度是很高的。

【相當於原始社會我們需要打把錘子的時候,要知道知道做錘頭跟錘把的步驟,才能做出一把錘頭】

(2)採用工廠設計模式:


耦合度降低了,知道了工廠跟接口就好了,但是代碼就跟複雜了。有利於代碼的擴展,分工明確了。

【相當於手工時代,知道接口跟工廠找工廠幫忙打一把就好,至於做法的步驟就交給工廠好了】

(3)採用反轉控制


【高級社會,只要在門口放一個小框就自動給你一個錘頭】

因此要顛覆以前的new啊什麼的,而是改成依賴注入!!!

依賴注入的方式:

1、構造器注入

2、屬性注入set注入

3、註解注入

4、接口注入

-------------

DI能夠讓相互協作的軟件組件保持鬆散耦合,而面向切面編程(AOP)允許你把遍佈應用各處的功能分離出來形成可重用的組件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章