ioc概念
控制反轉(inversion of control)是乙個重要的物件導向程式設計的法則來削減電腦程式的耦合問題。 它還有乙個名字叫做依賴注入(dependency injection)。ioc不是什麼技術,它是一種設計模式。
例項演示
為了更好的說明ioc,我為大家舉乙個簡單的例子,如有這樣乙個描述:某公司新成立了乙個專案組,專案組有若干成員和乙個專案組長,專案組成立後第一次開會上,作為專案組長的小李按照慣例首先做了簡短的自我介紹。
根據上述的描述,如果我們寫出如下**和類圖:
雙擊**全選12
3456
78910
11public
class
li }
public
class
team
}具體類圖如下:
上述的**,應該說基本完成了相關的需求,但是仔細考慮之後就會發現,上述的**是根據具體的場景描述進行的,並沒有進行抽象,這樣就導致我們不能靈活的安排專案組長去做開場,即根據現在的**,開場自我介紹被繫結給了小李而不能安排給其他人。為了解決上述的問題,我們引入首先引入leader介面,相關**和類圖如下:
雙擊**全選12
3456
78910
1112
1314
1516
17public
inte***ce
leader
public
class
li implements
leader
}public
class
team
}具體類圖如下:
雖然上述的**可以讓我們安排給其他成員開場,但是我們可以看出team類同時依賴leader介面和li類,並沒有達到我們所期望的team僅僅依賴於leader介面的目的,如何解決這個問題呢?當然是引入boss,由boss決定具體由誰擔任專案組長。具體類圖和**如下:
雙擊**全選12
3456
78910
1112
1314
1516
1718
1920
2122
2324
public
inte***ce
leader
public
class
li implements
leader
}public
class
team
}public
class
boss
}具體類圖如下:
通過以上**和圖示,我們可以看出,通過引入老闆類,我們將專案小組和具體由誰擔任專案組長進行解耦。
對應上述例子,我們再來講解一下ioc,ioc從字面上看分為控制和反轉,控制在上面的例項中就是具體由誰擔任專案組長,而反轉就是將決定誰擔任專案組長轉移到boss類中。通俗理解就是將介面的具體實現類(li)的控制權從呼叫類(team)中分離轉交給第三方(boss)決定。
spring中IOC控制反轉
ioc 控制反轉 意思就是將物件的建立權力交給spring 提前在spring容器中構建好了spring物件,如此我們可以通過spring 容器直接呼叫getbean name屬性或者id名稱 獲取對應的物件 將來我們可以從classpath目錄下載入到我們的spring主配置檔案.凡是交給spri...
Spring 控制反轉IoC
1,ioc理論背景 在使用物件導向語言開發的系統中,不同物件之間相互協作得以實現業務邏輯。就像是一塊機械手錶,通過不同齒輪的協作,讓時針 分針 秒針精確的執行。如果乙個齒輪發生故障,那麼整塊手錶的功能就要受到影響。手錶齒輪之間的關係和軟體系統中物件的耦合關係很相似。物件之間的耦合關係是必要的,也是無...
Spring中IOC和AOP詳解
我們是在使用spring框架的過程中,其實就是為了使用ioc容器 依賴注入,和aop 面向切面程式設計,這兩個是spring的靈魂。主要用到的設計模式有工廠模式和 模式。ioc就是典型的工廠模式,通過sessionfactory去注入例項。aop就是典型的 模式的體現。在傳統的程式設計中,當呼叫者需...