系统架构设计师 - 23种设计模式(GOF)
文章目錄
- 總覽
- 創(chuàng)建型(5種)
- 工廠方法 Factory Method
- 抽象工廠 Abstract Factory
- 生成器模式 Builder
- 原型模式 Prototype
- 單例模式 Singleton
- 結(jié)構(gòu)型(7種)
- 適配器 Adapter
- 橋接 Bridge
- 組合模式 Composite
- 裝飾者模式 Decorator
- 外觀模式 Facade
- 享元模式 Flyweight
- 代理模式 Proxy
- 行為型(11種)
- 解釋器 Interpretor
- 模板方法 Template Method
- 責(zé)任鏈 Chain Of Reponsibility
- 命令模式 Commond
- 迭代器 Interator
- 中介者 Mediator
- 備忘錄 Memento
- 觀察者模式 Observer
- 狀態(tài)模式 State
- 策略模式 Strategy
- 訪問(wèn)者模式 Visitor
總覽
創(chuàng)建型(5種)
工廠方法 Factory Method
定義一個(gè)創(chuàng)建類(lèi)的接口 , 允許 在不確定一個(gè)類(lèi)的具體實(shí)例的情況下創(chuàng)建 并使用它 ,讓子類(lèi)決定具體實(shí)例化的類(lèi)型;
抽象工廠 Abstract Factory
定義一個(gè)接口 , 創(chuàng)建 一系列相關(guān) 或 互相依賴(lài) 的對(duì)象 , 而無(wú)需指定它們的具體類(lèi);
生成器模式 Builder
將類(lèi)的構(gòu)建過(guò)程 與 具體表現(xiàn) 分離 ,相同的過(guò)程可以創(chuàng)建不同的表示;
原型模式 Prototype
用原型實(shí)例 指定創(chuàng)建類(lèi)的對(duì)象,并通過(guò)拷貝原型來(lái)獲取新的對(duì)象;
單例模式 Singleton
保證一個(gè)類(lèi)的實(shí)例 全局只有一個(gè) , 并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn) ;
結(jié)構(gòu)型(7種)
適配器 Adapter
將一個(gè)類(lèi)的接口轉(zhuǎn)換成客戶(hù)需要的另一個(gè)接口 , 使原來(lái)由于接口不能兼容的類(lèi)在一起工作;
橋接 Bridge
將 抽象部分 和 實(shí)現(xiàn)部分 分離, 使兩者可以獨(dú)立的變化
組合模式 Composite
將對(duì)象組合成樹(shù)形結(jié)構(gòu) 以描述 部分和整體的 層次關(guān)系 , 使得操作單個(gè)對(duì)象 和 操作組合對(duì)象 具有一致性;
裝飾者模式 Decorator
動(dòng)態(tài)的給對(duì)象添加額外的職能;
外觀模式 Facade
給一系列接口的交互過(guò)程提供統(tǒng)一的 接口 (訪問(wèn)形式) ;
享元模式 Flyweight
大量 細(xì)粒度 對(duì)象的共享技術(shù);
代理模式 Proxy
為其他對(duì)象提供一種代理 , 以控制它的訪問(wèn);
行為型(11種)
解釋器 Interpretor
給定一個(gè)語(yǔ)言 定義其文法表示 , 并定義一個(gè)解釋該語(yǔ)言的解釋器 , 解釋器通過(guò)該標(biāo)識(shí)解釋 語(yǔ)言中的句子 ;
模板方法 Template Method
定義一系列算法的骨架 , 并將其中一些特定的步驟延遲到子類(lèi)去實(shí)現(xiàn) ; 使得 子類(lèi)可以在不改變算法的結(jié)構(gòu)的前提下 , 重新定義具體步驟的實(shí)現(xiàn)方式;
責(zé)任鏈 Chain Of Reponsibility
避免請(qǐng)求者和接收者耦合在一起 , 定義多個(gè)對(duì)象都有能力處理請(qǐng)求 , 并將它們以鏈?zhǔn)浇Y(jié)構(gòu)連接 , 在鏈上傳遞請(qǐng)求 , 直到有一個(gè)對(duì)象處理請(qǐng)求為止;
命令模式 Commond
將一個(gè)請(qǐng)求封裝成一個(gè)命令 , 使用不同的請(qǐng)求實(shí)現(xiàn)參數(shù)化 , 以支持 記錄 / 撤回 / 重做 / 事務(wù) / 隊(duì)列處理
迭代器 Interator
提供一個(gè)方法順序訪問(wèn) 一個(gè)組合對(duì)象的各個(gè)元素 , 而不暴露該對(duì)象的內(nèi)部表示;
中介者 Mediator
定義一個(gè)中介對(duì)象 , 封裝一系列對(duì)象間的交互 , 使各對(duì)象之間不需要顯示的調(diào)用 ,松散耦合 , 可以獨(dú)立的改變它們之間的交互 ;
備忘錄 Memento
在不破壞封裝性的前提下 , 捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài) , 并在對(duì)象外保存其內(nèi)部狀態(tài) , 以在合適的時(shí)機(jī) 恢復(fù)對(duì)象到保存的狀態(tài)
觀察者模式 Observer
定義對(duì)象間一對(duì)多的依賴(lài)關(guān)系 , 當(dāng)被依賴(lài)對(duì)象狀態(tài)發(fā)生變化時(shí) , 所有依賴(lài)它的對(duì)象都能收到通知 并 自動(dòng)更新 ;
狀態(tài)模式 State
允許對(duì)象在內(nèi)部狀態(tài)改變時(shí)修改自身的行為 ;
策略模式 Strategy
定義一系列算法 , 并把它們一個(gè)個(gè)封裝起來(lái) , 可以互相替換;
訪問(wèn)者模式 Visitor
數(shù)據(jù)結(jié)構(gòu) 和 數(shù)據(jù)訪問(wèn) 分離;
23種設(shè)計(jì)模式
總結(jié)
以上是生活随笔為你收集整理的系统架构设计师 - 23种设计模式(GOF)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 自定义Valid注解,校验List集合
- 下一篇: IntelliJ IDEA 2019.1