控制反轉是應用於軟件工程領域中的,在運行時被裝配器對象來綁定耦合對象的一種編程技巧,對象之間耦合關系在編譯時通常是未知的。在傳統編程方式中,業務邏輯的流程是應用程序中早已被設定好關聯關系的對象來決定的。在使用控制反轉的情況下,業務邏輯的流程是由對象關系圖來決定的,該對象關系圖有裝配器負責實例化,這種方式還可以將對象之間的關聯關系的定義抽象化,而綁定的過程是通過“依賴注入”實現的。
控制反轉是一種以給予應用程序中目標組件更多控制為目的的設計范式,並在我們的實際工作中起到了有效的作用。
依賴注入實在編譯階段商未知所需的功能來自哪個類的情況下,將其他的對象所依賴的功能對象實例化的模式。這就需要一種極致來激活相應的組件已提供特定的功能,所依賴注入是控制反轉的基礎。否則如果在組件不受框架控制的情況下,框架有怎么知道要創建那個組件?
在java中依賴注入有三種實現方式:
1、構造器注入
2、Setter注入
3、接口注入