目錄
- 為什么要寫設(shè)計模式系列
- 學(xué)設(shè)計模式之前氮发,必學(xué) UML
- 設(shè)計模式概覽
- 創(chuàng)建型模式(Creational Pattern)
- 結(jié)構(gòu)型模式(Structural Pattern)
- 行為型模式(Behavioral Pattern)
為什么要寫設(shè)計模式系列
設(shè)計模式這玩意平日里讓我思緒萬千搂妻,可真要提起筆來卻顧頭顧尾滋觉、不得要義。于是乎就有了書寫設(shè)計模式系列的想法驳遵,一來是徹頭徹尾的歸納總結(jié)一遍,二來也希望盡自己力量生產(chǎn)一些“不那么糟糕”的產(chǎn)物。
整篇文集收錄將會逐步增加羞福,直至經(jīng)典的23種設(shè)計模式全部完成。并且在23種模式徹底定稿前蚯涮,我會定期的回顧之前書寫的內(nèi)容治专,力求做到寫出的東西不給別人帶來困擾。也非常歡迎您通過評論遭顶、私信等方式為文章勘誤张峰。
學(xué)設(shè)計模式之前,先學(xué) UML
學(xué)設(shè)計模式之前液肌,需先學(xué)習(xí)UML 中的類圖
挟炬。 能看懂類圖中各個類之間的線條、箭頭代表什么意思嗦哆,也就足夠應(yīng)對日常的工作和交流谤祖。這時我們就能將類圖所表達(dá)的含義和最終的代碼對應(yīng)起來。 UML 知識將是我們學(xué)習(xí)設(shè)計模式的基礎(chǔ)設(shè)施老速。
可以參考我整理的UML類圖文章粥喜,或者直接 Google 。
設(shè)計模式概覽
創(chuàng)建型模式(Creational Pattern)
創(chuàng)建型模式對類的實例化過程進(jìn)行了抽象橘券,能夠?qū)④浖K中
對象的創(chuàng)建
和對象的使用
分離额湘。為了使軟件的結(jié)構(gòu)更加清晰,外界對于這些對象只需要知道它們共同的接口旁舰,而不清楚其具體的實現(xiàn)細(xì)節(jié)锋华,使整個系統(tǒng)的設(shè)計更加符合單一職責(zé)原則
。
名稱CN. | 名稱EN. | 模式本質(zhì) | 重要程度 | 文章鏈接 |
---|---|---|---|---|
簡單工廠模式 | Simple Factory | 選擇實現(xiàn) | ???????? | 前往查看 |
工廠方法模式 | Factory Method | 延遲到子類來選擇實現(xiàn) | ?????????? | 前往查看 |
抽象工廠模式 | Abstract Factory | 選擇產(chǎn)品簇 | ?????????? | 前往查看 |
建造者模式 | Builder | 部件構(gòu)造 | ???? | 前往查看 |
單例模式 | Singleton | 控制實例數(shù)目 | ???????? | 等待完善 |
原型模式 | Prototype | 克隆生成對象 | ?????? | 前往查看 |
結(jié)構(gòu)型模式(Structural Pattern)
結(jié)構(gòu)型模式描述
如何將類或者對象結(jié)合在一起形成更大的結(jié)構(gòu)
箭窜。就像搭積木毯焕,可以通過簡單積木的組合形成復(fù)雜的、功能更為強(qiáng)大的結(jié)構(gòu)磺樱。
結(jié)構(gòu)型模式可以分為:
- 類結(jié)構(gòu)型模式 —— 在類結(jié)構(gòu)型模式中一般只存在繼承關(guān)系和實現(xiàn)關(guān)系纳猫。
- 對象結(jié)構(gòu)型模式 —— 對象結(jié)構(gòu)型模式關(guān)心類與對象的組合,通過關(guān)聯(lián)關(guān)系使得在一 個類中定義另一個類的實例對象竹捉,然后通過該對象調(diào)用其方法芜辕。
名稱CN. | 名稱EN. | 模式本質(zhì) | 重要程度 | 文章鏈接 |
---|---|---|---|---|
適配器模式 | Adapter | 轉(zhuǎn)化匹配,復(fù)用功能 | ???????? | 前往查看 |
裝飾模式 | Decorate | 動態(tài)組合 | ?????? | 前往查看 |
橋接模式 | Bridge | 分離抽象與實現(xiàn) | ?????? | 等待完善 |
外觀模式 | Facade | 封裝交互块差,簡化調(diào)用 | ?????????? | 前往查看 |
享元模式 | Flyweight | 分離與共享細(xì)粒度對象 | ?? | 前往查看 |
組合模式 | Composite | 葉子與組合對象 | ???????? | 前往查看 |
代理模式 | Proxy | 控制對象訪問 | ???????? | 前往查看 |
行為型模式(Behavioral Pattern)
行為型模式是
對在不同的對象之間劃分責(zé)任和算法的抽象化
侵续。行為型模式不僅僅關(guān)注類和對象的結(jié)構(gòu)倔丈,而且重點關(guān)注它們之間的相互作用。
行為型模式分為類行為型模式
和對象行為型模式
兩種:
- 類行為型模式:類的行為型模式使用繼承關(guān)系在幾個類之間分配行為状蜗,類行為型模式主要通過多態(tài)等方式來分配父類與子類的職責(zé)乃沙。
- 對象行為型模式:對象的行為型模式則使用對象的聚合關(guān)聯(lián)關(guān)系來分配行為,對象行為型模式主要是通過對象關(guān)聯(lián)等方式來分配兩個或多個類的職責(zé)诗舰。
名稱CN. | 名稱EN. | 模式本質(zhì) | 重要程度 | 文章鏈接 |
---|---|---|---|---|
命令模式 | Command | 封裝命令 | ???????? | 前往查看 |
狀態(tài)模式 | State | 分離狀態(tài)警儒,選擇實現(xiàn) | ?????? | 前往查看 |
策略模式 | Strategy | 分離算法,選擇實現(xiàn) | ???????? | 前往查看 |
中介模式 | Mediator | 封裝交互 | ???? | 等待完善 |
觀察者模式 | Observer | 觸發(fā)聯(lián)動 | ?????????? | 前往查看 |
職責(zé)鏈模式 | Chain of Responsibility | 分離職責(zé)眶根,動態(tài)組合 | ?????? | 前往查看 |
迭代器模式 | Iterator | 控制訪問聚合對象中的元素 | ?????????? | 前往查看 |
備忘錄模式 | Memento | 保存和恢復(fù)內(nèi)部狀態(tài) | ???? | 等待完善 |
解釋器模式 | Interpreter | 分離實現(xiàn)蜀铲,解釋執(zhí)行 | ?? | 等待完善 |
訪問者模式 | Visitor | 預(yù)留通路,回調(diào)實現(xiàn) | ?? | 等待完善 |
模板方法模式 | Template Method | 固定算法骨架 | ?????? | 等待完善 |