設計模式適用場景整理
整理一下適用場景,便於遇到合適場景時通過使用設計模式更好地去掌握設計模式
設計模式分建立型、行為型、結構型
建立型
策略模式:某一個功能有多種方案可以選擇的情景
單例模式:建立獨一無二的,只能有一個例項的物件;一個無狀態的類,使用該模式節省資源
工廠模式:建立新物件,且該物件需要被被封裝
抽象工廠模式:用於建立一組產品(各產品不一定相同)
建造模式:一個類的各個組成部分的具體實現類或者演算法經常面臨著變化,但是將他們組合在一起的演算法卻相對穩定。提供一種封裝機制 將穩定的組合演算法於易變的各個組成部分隔離開來。
原型模式:用new建立一個物件需要非常繁瑣的資料準備或者許可權
行為型
模板模式:架構師用於搭建專案的框架,架構師定好了骨架,程式設計師繼承了骨架的結構之後,負責往裡面填空
命令模式:向某些物件傳送請求,但是並不知道請求的接受者是誰,也不知道請求的操作是什麼;讓程式執行的任何時刻去呼叫這個方法;
將一個請求封裝為一個物件,從而使你可以用不同的請求對客戶進行引數化
迭代器模式:需要順序訪問一個組合內的多個物件的時候使用。
觀察者模式:非同步程式設計;主題是具有狀態的物件,並且可以控制這些狀態,觀察者使用這些狀態,雖然這些狀態不屬於它們
狀態模式:一個物件的行為取決於它的狀態,並且它必須在執行時刻根據狀態改變它的行為;個操作中含有龐大的多分支結構,並且這些分支決定於物件的狀態
職責鏈模式:使多個物件都有機會處理請求,從而避免請求的送發者和接收者之間的耦合關係
中介者模式:用一箇中介物件封裝一些列的物件互動
訪問者模式:表示一個作用於某物件結構中的各元素的操作,它使你可以在不改變各元素類的前提下定義作用於這個元素的新操作
備忘錄模式:在不破壞物件的前提下,捕獲一個物件的內部狀態,並在該物件之外儲存這個狀態
結構型
裝飾者模式:增加行為到包裝物件上,在不改變物件自身的基礎上,在程式執行期間給物件動態的新增職責
代理模式:為另一個物件提供一個替身或佔位符以控制對這個物件的訪問
外觀模式:子系統中的一組介面提供一致的介面
介面卡模式:將一類的介面轉換成客戶希望的另外一個介面;使得原本由於介面不相容而不能一起工作那些類可以一起工作
橋樑模式:將抽象部分與它的實現部分相分離,使他們可以獨立的變化
組合模式:將物件組合成樹形結構以表示部分整體的關係;使得使用者對單個物件和組合物件的使用具有一致性
享元模式:
享元模式以共享的方式高效的支援大量的細粒度物件。享元模式能做到共享的關鍵是區分內蘊狀態和外蘊狀態。內蘊狀態儲存在享元內部,不會隨環境的改變而有所不同。外蘊狀態是隨環境的改變而改變的。
相關文章
- 索引設計(組合索引適用場景)索引
- Spark適用於哪些場景?不適用於哪些場景?Spark
- 設計模式應用場景之Model設計中可以用到的設計模式設計模式
- React 設計模式和場景分析React設計模式
- CDN適用哪些場景?
- 圖解設計模式:身份認證場景的應用圖解設計模式
- INDEX SKIP SCAN適用場景Index
- 設計模式學習筆記(十七)中介者模式及其應用場景設計模式筆記
- 設計模式學習筆記(十九)觀察者模式及應用場景設計模式筆記
- 【優化】ALL_ROWS模式和FIRST_ROWS模式的適用場景優化模式
- 【最佳化】ALL_ROWS模式和FIRST_ROWS模式的適用場景模式
- Streaming特性和適用場景
- SPM適用的場景和示例
- 單例模式應用場景:單例模式
- MongoDB的優勢和適用場景MongoDB
- Android設計模式——策略模式之原始碼使用場景(三)Android設計模式原始碼
- 企業雲盤適用哪些應用場景
- 效能場景設計
- 設計模式-適配者模式設計模式
- 設計模式的侷限性與適用性設計模式
- 區塊鏈不適用的若干場景區塊鏈
- BITMAP CONVERSION FROM ROWIDS 適用場景
- Linkedlist的應用場景:設計佇列、設計棧佇列
- [.net 物件導向程式設計深入](18)實戰設計模式——設計模式使用場景及原則物件程式設計設計模式
- 物件儲存適用於哪些場景?這5個場景皆可使用!物件
- 分享一組場景應用設計參考
- 23種設計模式(概念、原則、場景、優點、缺點、應用)簡述設計模式
- 架構設計之源:設計模式的場景分析(1)Publish-Subscribe架構設計模式
- Android設計模式之——單例模式之原始碼使用場景(一)Android設計模式單例原始碼
- list與Set、Map區別及適用場景
- NIO是什麼?適用於何種場景?
- 全息投影技術所適用的場景分析
- 企業API閘道器適用業務場景API
- 談談 Redux 與 Mobx 思想的適用場景Redux
- 本地索引和全域性索引的適用場景索引
- js代理模式理解和應用場景JS模式
- 觀察者模式應用場景例項模式
- android 啟動模式應用場景Android模式