1. 程式人生 > >Spring原始碼分析(二)——常用設計模式

Spring原始碼分析(二)——常用設計模式

代理模式:事情必須做,而自己沒有時間做或者不想做。必須持有被代理物件的引用。包括靜態代理和動態代理兩種代理方式。生活中的場景如火車票代買、簽證辦理等一系列中介類似的活動。在Spring中的體現有JDK動態代理和cglib動態代理等。

工廠模式:隱藏複雜的邏輯處理過程,只關心結果。需要告知工廠生產的產品。包括簡單工廠,工廠方法和抽象工廠三種。生活中的場景如生產某指定紙製品和從4s店提一輛BWM車等。Spring的整體架構BeanFactory即是一個大的抽象工廠模式。

單例模式:保證從系統啟動到系統停止全過程只會產生一份例項。包括懶漢、餓漢等八種設計模式。生活中的場景如人等。Spring的IOC容器就是一個單例模式最好的體現。

委派模式:與中介的委託機制類似,也持有被委託人的引用。與代理模式的區別在於,代理模式需要關注過程,委託模式只關注結果。Spring中委派模式隨處可見,父類的某個XXX()方法和子類的doXXX()方法。

策略模式:有不同的處理過程,但處理的結果都是一樣。生活中的場景如按照某一國家標準生產生產出來的同一產品等。Spring中使用兩種動態代理來實現DI。

原型模式:過程相同,但產生的結果不一樣。生活中的場景如同樣的原材料生產的產品總會出現部分殘次品。Spring中生產Bean則是比較好的體現。