IoC(Inversion of Control)被稱爲“控制反轉”,它又有一個比較讓人好理解的概念,DI(Dependency Injection),即依賴注入。
IoC指的就是由容器控制程序之間的關係,而非傳統實現中,有程序代碼直接控制。即組件之間的依賴關係有容器在運行覺定。
爲了讓讀者更好的瞭解IoC的概念,筆者舉一個國外網站看到的一個運行簡單的實例來幫助讀者理解。下面的實例中,在類MovieLister中提供一個根據導演的名稱獲取他所有導演的影片的方法,在該類中,需要調用一個影片查找器獲得所有影片信息。在該類中調用影片查找器的工廠來獲得具體的影片查找器。
第一步:準備工作
導入好包,創建好包。
第二步:編寫影片類:Movie.java
編寫影片查找器接口:MovieFinder.java
編寫影片查找器實現類: SampleMovieFinder.java
編寫影片查找器工廠類:SampleMovieFinder.java
編寫測試類:MovieLister.java
運行結果: