-
單例模式
保證被創(chuàng)建一次瑰剃,節(jié)省系統(tǒng)開銷。
Spring 中的 Bean 默認都是單例的
-
工廠模式
解耦代碼筝野。
簡單工廠:用來生產(chǎn)同一等級結(jié)構(gòu)中的任意產(chǎn)品晌姚,對于增加新的產(chǎn)品,無能為力歇竟。
工廠方法:用來生產(chǎn)同一等級結(jié)構(gòu)中的固定產(chǎn)品挥唠,支持增加任意產(chǎn)品。
抽象工廠:用來生產(chǎn)不同產(chǎn)品族的全部產(chǎn)品焕议,對于增加新的產(chǎn)品宝磨,無能為力;支持增加產(chǎn)品族。
Spring使用工廠模式通過 BeanFactory懊烤、ApplicationContext 創(chuàng)建 bean 對象
-
觀察者模式
定義了對象之間的一對多的依賴,這樣一來宽堆,當一個對象改變時腌紧,它的所有的依賴者都會收到通知并自動更新。
Spring 事件驅(qū)動模型就是觀察者模式很經(jīng)典的一個應(yīng)用
-
模版方法模式
定義了一個算法的骨架畜隶,而將一些步驟延遲到子類中壁肋,模版方法使得子類可以在不改變算法結(jié)構(gòu)的情況下,重新定義算法的步驟籽慢。
Spring 中 jdbcTemplate浸遗、hibernateTemplate 等以 Template 結(jié)尾的對數(shù)據(jù)庫操作的類,它們就使用到了模板模式
-
適配器模式
Spring AOP 的增強或通知(Advice)使用到了適配器模式箱亿、spring MVC 中也是用到了適配器模式適配Controller跛锌。
-
包裝器設(shè)計模式
我們的項目需要連接多個數(shù)據(jù)庫,而且不同的客戶在每次訪問中根據(jù)需要會去訪問不同的數(shù)據(jù)庫届惋。這種模式讓我們可以根據(jù)客戶的需求能夠動態(tài)切換不同的數(shù)據(jù)源
-
代理設(shè)計模式
Spring AOP 功能的實現(xiàn)