IOC,即控制反轉(Inversion of Control,英文縮寫爲IoC),是一個重要的面向對象編程的法則來削減計算機程序的耦合問題,也是輕量級的Spring框架的核心。 控制反轉通常分爲兩種類型,依賴注入(Dependency Injection,簡稱DI)和依賴查找(Dependency Lookup)。
IOC的優勢:實現組件之間的解耦,提升程序的靈活性和可維護性。
IOC的缺點:
一、建立對象的步驟變複雜了,不直觀,固然這是對不習慣這種方式的人來講的。
二、由於使用反射來建立對象,因此在效率上會有些損耗。但相對於程序的靈活性和可維護性來講,這點損耗是微不足道的。
三、缺乏IDE重構的支持,若是修改了類名,還需到XML文件中手動修改,這彷佛是全部XML方式的缺憾所在。
IOC的應用:
IOC模式將耦合代碼從程序中移出,放到統一的XML文件中管理。由IOC容器經過配置文件來管理對象的生命週期、依賴關係等,這樣就不用從新修改並編譯具體的代碼,從而實現組件之間的解耦。