傳統的開發需要程式設計師自己手動的new例項化乙個物件,但這種模式如果使用者需求發生改變往往會需要重新修改**,例如:
public
inte***ce
userdao
public
class
userdaoimpl
implements
userdao
}//使用者需求改變,增加userdao的實現
public
class
usermysqldaoimpl
implements
userdao
}public
class
useroracledaoimpl
implements
userdao
}public
inte***ce
userservice
public
class
userserviceimpl
implements
userservice
}
而運用ioc思想理論用set動態注入,就可避免這種情況,**如下:
public
class
userserviceimpl
implements
userservice
@override
public
void
getuser()
}public
class
mytest
}
區別是原來使用者需求改變,需要修改業務層的例項化**(new**),主動權在業務層,而現在主動權在使用者手中。如下圖
很明顯,通過set注入能將程式的主動權交給使用者而非程式設計師,也就是說程式設計師不用去管理物件的建立,而是更專注於業務層的功能實現,從而減少了系統的耦合性。
控制反轉是一種通過描述(xml配置或註解)並通過第三方去生成或獲取特點物件的一種方式,在spring中實現控制反轉的是ioc容器,實現方法是依賴注入
控制:即控制物件的建立
反**程式本身不自己主動建立物件,而是被動的接收物件。
IoC控制反轉
首先假設有乙個需求,類business需要呼叫類dependency的方法f 1 按照日常的做法,得到下面的 類dependency public class dependency 類business public class business public void dosomething 2 對...
IOC 控制反轉
ioc是物件導向程式設計中的一種設計原則,可以借助 第三方 來減低計算機 之間的 耦合度 其中最常見的方式叫做依賴注入 dependency injection,簡稱di 還有一種方式叫 依賴查詢 dependency lookup 通過控制反轉,物件在被建立的時候,由乙個調控系統內所有物件的外界實...
IOC 控制反轉
想說說ioc inversion of control,控制反轉 這是spring的核心,貫穿始終。所謂ioc,對於spring框架來說,就是由spring來負責控制物件的生命週期和物件間的關係。這是什麼意思呢,舉個簡單的例子,我們是如何找女朋友的?常見的情況是,我們到處去看 有長得漂亮身材又好的m...