控制反轉就是經過接口來編程是控制關係發生了轉變,使得類的耦合性下降(及某些類不會再依據某些具體實現類去完成任務,而能夠經過接口調用根據接口不一樣的實現類來完成不一樣的任務)編程
IoC最大的好處是什麼?由於把對象生成放在了XML裏定義,因此當咱們須要換一個實現子類將會變成很簡單(通常這樣的對象都是實現於某種接口的),只要修改XML就能夠了,這樣咱們甚至能夠實現對象的熱插撥(有點象USB接口和SCIS硬盤了)。 對象
IoC最大的缺點是什麼?(1)生成一個對象的步驟變複雜了(其實上操做上仍是挺簡單的),對於不習慣這種方式的人,會以爲有些彆扭和不直觀。(2)對象生成由於是使用反射編程,在效率上有些損耗。但相對於IoC提升的維護性和靈活性來講,這點損耗是微不足道的,除非某對象的生成對效率要求特別高。(3)缺乏IDE重構操做的支持,若是在Eclipse要對類更名,那麼你還須要去XML文件裏手工去改了,這彷佛是全部XML方式的缺憾所在。