1. 程式人生 > >一起寫框架-控制反轉(Ioc)概述(二)

一起寫框架-控制反轉(Ioc)概述(二)

val 程序設計 log font 修改 style 編程思想 調用方法 cal

控制反轉概述

控制反轉(Inversion of Control,英文縮寫為IoC就是將代碼的調用的控制權,由調用方轉移給被調用方。

如圖:修改代碼A類的代碼,才能將B類的對象換成C類。代碼的控制權在A類(調用方)。我們將這種代碼調用的方式,稱為強耦合的代碼調用。

技術分享

(圖2-1

將上圖的需求,修改為使用Ioc的調用代碼方式。就是將代碼的控制權從調用方法修改為被調用方法,意味著,代碼的調用修改被調用方(我們也稱為服務方),不用修改調用方的的代碼。

如圖:

技術分享

(圖2-2

Ioc內核就是解決這兩個問題

根據上圖可以的得出,實現一個IoC的框架,必須要解決兩個問題:

1.被調用方,在程序啟動時就要創建好對象,放在一個容器裏面。

2.調用方使用一個接口或類的引用(不用使用new),就可以創建獲得對象。

我們將這種不用new,而是根據接口或者類的引用就可以從被調用的容器裏獲得創建的對象的方式稱為依賴註入。

所以,控制反轉(Ioc),就是依賴註入加上面向接口的編程思想的實現。

為什麽需要IoC

首先我們需要知道,一個程序設計的原則。高內聚,低耦合。IoC容器的實現,就是用於統一管理對象與對象的關系。將本來類與類之間的調用關系,變成了引用關系。

降低了類與類之間的耦合度。所以IoC這套理念為低耦合而生。

對於Ioc實現原理有興趣的朋友,耐心看看我的《一起寫框架》欄目,裏面講述了一個Ioc的內核是怎樣開發出來的!

一起寫框架-控制反轉(Ioc)概述(二)