wordpress htwo下載地址網站排名優(yōu)化
最近在看設計模式,其描述抽象程度令人欲罷不能,始終不得其意。于是嘗試用一句話總結了一下,常規(guī)的就不說了,只是舉了個例子。
單例模式
- Spring中的單例bean使用了雙重鎖機制
工廠模式
- Spring中的BeanFactory是簡單工廠模式
- BeanFactory是工廠方法模式(工廠父類,工廠子類,公共接口)
原型模式
**它通過復制一個已有的實例(即原型對象)來創(chuàng)建一個和原型對象相同的新對象。**? 當創(chuàng)建對象的過程比較復雜時,使用該模式快速創(chuàng)建對象。
實現(xiàn)方式:
- 淺克隆:實現(xiàn)
Cloneable
接口, - 深克隆:實現(xiàn)
serializable
接口
建造者模式
將對象的構建和表示分離,分步驟創(chuàng)建復雜對象,同樣的過程可以創(chuàng)建不同的對象。
StringBuiler
和StringBuffer
- Mybatis中的
SqlSessionFactoryBuilder
橋接模式
橋接模式就像是把一個大玩具拆成兩部分:
- 形狀部分:比如車子、船或飛機的樣子。
- 顏色部分:比如紅色、藍色或綠色。
這樣做的好處是,我們可以隨意組合不同的形狀和顏色,而不用為每種組合都做一個全新的玩具。這讓制作玩具變得更簡單,也讓我們可以輕松創(chuàng)造出更多種類的玩具。
這種方法幫助程序員更容易寫出靈活的程序,就像我們可以輕松制作各種不同的玩具一樣。
組合模式是一種結構型設計模式, 你可以使用它將對象組合成樹狀結構, 并且能像使用獨立對象一樣使用它們。
組合模式就像是一個樹形積木游戲。
想象一下,你有很多積木,可以把它們組合在一起。你可以把小積木連接成一個大積木,然后再把這個大積木和其他積木連接,形成更大的結構。
這種模式讓你可以用同樣的方式對待單個積木和由多個積木組成的大結構。不管是一個積木還是一堆積木,你都可以移動它,數(shù)它,或者對它做其他操作。
這樣做的好處是,你可以輕松地創(chuàng)建復雜的結構,同時還能簡單地處理它們,就像處理單個積木一樣容易。
享元模式:通過共享所有對象的相同狀態(tài),減少單個對象的大小。
代理模式:在不改變原對象的前提下,控制對該對象的訪問,允許在前后進行處理。
裝飾器模式:在不改變原對象的前提下,增加新的功能。
外觀模式:給復雜的對象提供一個簡單的操作接口,用戶只需要關注功能而不需要關注具體實現(xiàn)。
責任鏈模式:行為設計模式,將請求沿著處理器鏈進行發(fā)送,每個處理器可以處理也可以不處理。filterCharin.
命令模式:將請求轉換為包含與請求所有相關信息的獨立對象。相當于購物清單。
迭代器模式是一種行為設計模式, 讓你能在不暴露集合底層表現(xiàn)形式 (列表、 棧和樹等) 的情況下遍歷集合中所有的元素。
中介者模式:減少對象之間的直接訪問,對象和中介者交互,然后事情由中介者負責處理。
備忘錄模式:在不暴露對象實現(xiàn)細節(jié)的情況下,保存和恢復之前的狀態(tài)。
觀察者模式:可在對象事件發(fā)生時通知多個 “觀察” 該對象的其他對象。類似于新聞發(fā)布會。
狀態(tài)模式:當對象狀態(tài)發(fā)生改變時,改變其行為。類似于自動機
策略模式:完成某個行為的多種方式,可以互相替換。地圖導航中的步行、駕車、公共交通。
模版方法模式:父類中定義算法框架,子類在不修改框架的基礎上重寫特定細節(jié)。AQS
訪問者模式:分離算法和數(shù)據(jù)結構,對同樣的東西做不同的事。例如messageConverter
,將消息轉換成不同格式。