近段時間漸覺自己愚弱,感覺各方面都有些透支。索性去腦補一下設計模式。講真,之前對此也是一知半解,未曾有太多研究,此番也是做簡單瞭解,參考園裡大神做些紀要。於是乎,我又一次發覺其實在日常擼碼中已經隱隱約約用到了各種設計模式(你覺得夢想很遠,其實你已經在路上了)。比如,資料庫連接池用到了單例模式;比如, ...
近段時間漸覺自己愚弱,感覺各方面都有些透支。索性去腦補一下設計模式。講真,之前對此也是一知半解,未曾有太多研究,此番也是做簡單瞭解,參考園裡大神做些紀要。於是乎,我又一次發覺其實在日常擼碼中已經隱隱約約用到了各種設計模式(你覺得夢想很遠,其實你已經在路上了)。比如,資料庫連接池用到了單例模式;比如,流程審核板塊會用到責任鏈模式;比如,為了給對象動態添加職責用到了裝飾者模式等等。當然如若真的能將這些個設計模式弄懂,寫起代碼來那真的是很方便,而且後人查閱也是一種美的享受啊。
設計模式,是幫助我們解決實際開發過程中的方法,該方法為了降低對象之間的耦合度。世間本無設計模式,不過是為了更好的解決實際問題而生產出來的方法罷了。
設計模式遵循封裝變化,職責單一,面向介面編程等原則。個人理解就是封裝、弱耦合。
設計模式的原則:
單一職責原則
開閉原則
依賴倒置原則
介面隔離原則
合成復用原則
迪米特原則(或者叫最少知識原則)
一句話點點23種常用設計模式
單例模式:要麼沒有,要麼只有一個
簡單工廠模式:讓子類決定實例化哪一個
抽象工廠模式:提供相關性介面,無需具體指定
工廠方法模式:在允許不修改工廠類的前提下添加新類
建造者模式:構建與表示分離
原型模式:重覆利用現有實例的拷貝
適配器模式:解決新舊共存的問題
橋接模式:實現與抽象解耦
裝飾者模式:對象動態添加職責
組合模式:簡單複雜等同操作
外觀模式:一群介面簡化為一個介面
享元模式:重覆對象共用
代理模式:代理源對象控制引用
模板方法模式:抽象共同,具體子類具體實現
命令模式:把行為進行抽象成命令
迭代器模式:抽象遍歷集合元素
觀察者模式:一對多的監聽
中介者模式:中介類封裝引用
狀態者模式:抽象狀態類簡化複雜判斷
策略者模式:一系列方法的封裝
責任鏈模式:多對象的處理
訪問者模式:封裝對數據結構的操作
備忘錄模式:保存發起人內部狀態
ps,主要參考Learning hard C#設計模式總結。
之前我收集一份23種常用設計模式簡化,簡單一句話搞定面試官應該問題不大,另外我也做一些pdf得筆記,感興趣的博友可以私聊了一下了。當然這裡只是讓我媽一句話知道設計模式,其實每種設計模式研究深一些還是有秘密,這條路深不見底!歡迎查閱,歡迎吐槽,一起學習,歡迎進步!