1. 程式人生 > >Spring控制反轉的最簡單說明

Spring控制反轉的最簡單說明

說明 實例化 一個 XML 處理 當前 現在 兩個 角色

現有角色如下:

一個接口Interface,兩個接口實現類InstatnceA、InstanceB,一個調用類User。

已有代碼如下:

User類中實例化了一個InstatnceA對象,代碼如:Interface interface = new InstanceA();

現欲修改如下:

現在想把實例化對象改為InstatnceB而不要實例化InstanceA了,為此我們需要修改代碼為:Interface interface = new InstanceB();

現在的控制是:

User控制實例化哪個類(是實例化InstanceA還是InstanceB)。

控制反轉:

當前代碼要改變實例化的類,都得到User類中修改代碼;控制反轉就是要改造成具體實例化的類不由User類決定而由其他地方決定。

spring的處理方式如下:

加入一個中間類Middle該類有Interface的get/set方法,然後真正該類註冊到beans.xml,註冊代碼中會指定Middle調用set方法時實例化成的類。

User類想獲取實例化對像通過調用Middle的get方法獲取,而該對象其實是set方法實例化的。

Spring控制反轉的最簡單說明