1、分層:就如同一個人自己制造一個錘子,自己動手豐衣足食。你需要他就自己new一個該實例。無法實現二者之間的松耦合;
2、工廠模式:一個人需要一個錘子,他找工廠,工廠幫他造了一個錘子。工廠給你制造的錘子,但是如何造的你不需要知道。你直接調用該接口就可以了,具體你不需要知道。調用者無須關心被調用者具體實現過程,只需要找到符合某種標准(接口)的實例,即可使用;
3、依賴注入:一個人需要一個錘子,他打電話給賣錘子的叫他送貨上門。你喜歡哪家的錘子,直接叫哪家送貨上門就OK。用者無須自己定位工廠,程序運行到需要被調用者時,系統自動提供被調用者實例。調用者和被調用者通過spring管理。他們的關系由spring維護
依賴注入或者說是控制反轉說白了就是使用了配置文件,這種思想的唯一好處就是增加了模塊的重用性、靈活性;
一般配置文件里存的都是數據,鍵值之類的。Spring的配置文件把要引用類和要給類傳的參數都放到配置文件里,這樣比以前寫死在程序里更靈活,因此更具重用性;
三者都需要自己造錘子的模,只是倒模出錘子的方式不同;
依賴注入:
IOC你就認為他是一個生產和管理bean的容器就行了,原來需要在調用類中new的東西,現在都是有這個IOC容器進行產生,同時,要是產生的是單利的bean,還可以管理bean的生命周期;
Spring的IOC有三種注入方式:
第一是根據屬性注入 也叫set方法注入;
第二種是根據構造方法進行注入;
第三種是根據注解進行注入,這種方式我認為比較好,方便,要是bean多的話,使用前兩種方式會使得配置文件過於臃腫;
Spring的優點:主要是根據它的IOC和AOP體現的。我感覺他就是把我們以前用到的工廠模式和代理模式進行了一個封裝。IOC主要是解決了代碼的耦合性問題,而AOP是面向切面編程的最好解釋。