行為型設計模式總結


行為型設計模式總結

Intro

行為型模式是將不同的行為代碼解耦,從而解決特定場景問題的一些經典結構。

行為型設計模式主要解決的就是“類或對象之間的交互”問題。行為型設計模式比較多,有 11 個,幾乎占了 23 種經典設計模式的一半。它們分別是:觀察者模式、模板模式、策略模式、職責鏈模式、狀態模式、迭代器模式、訪問者模式、備忘錄模式、命令模式、解釋器模式、中介模式。

總結

責任鏈(Chain of Responsibility)

多個處理器依次處理同一個請求。一個請求先經過 A 處理器處理,然后再把請求傳遞給 B 處理器,B 處理器處理完后再傳遞給 C 處理器,以此類推,形成一個鏈條。鏈條上的每個處理器各自承擔各自的處理職責。

模板方法模式(Template Method)

定義一個操作中的算法骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算的結構即使重定義該算法的某些特定步驟。

換句話說,公用的處理邏輯放在父類中處理,不同的處理邏輯放在子類中

迭代器(Iterator)

提供一種方法順序訪問一個聚合對象中的各個元素,而又不暴露該對象的內部表示。常用於遍歷一個集合對象

備忘錄模式(Memento)

在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。這樣以后就可將該對象恢復到原先保存的狀態。多用於數據備份和恢復的場景。

狀態模式(State)

當一個對象的行為取決於它的狀態,並且它必須在運行時根據狀態改變它的行為時就可以考慮狀態模式

觀察者模式(Observer)

在對象之間定義一個一對多的依賴,當一個對象狀態改變的時候,所有依賴的對象都會自動收到通知。將觀察者和被觀察者代碼解耦。

命令模式 (Command)

將一個請求封裝為一個對象,從而使得可以用不同的請求進行參數化,對請求排隊或者記錄請求日志以及支持可撤銷的操作。

中介模式(Mediator)

中介模式定義了一個單獨的(中介)對象,來封裝一組對象之間的交互。將這組對象之間的交互委派給與中介對象交互,來避免對象之間的直接交互。

策略模式(Strategy)

策略模式會定義一系列算法,從概念上來看,所有這些算法完全的都是相同的工作,只是實現不同,它可以以相同的方式調用所有的算法,減少了各種算法類與使用類之間的耦合。

解釋器模式(Interpreter)

當有一個語言需要解釋執行,並且你可以將該語言中的句子表示為一個抽象語法樹時,可以使用解釋器模式

訪問者模式(Visitor)

訪問者模式適用於數據結構相對穩定的系統,它把數據結構和作用域結構上的操作之間的耦合解脫開,使用操作集合可以相對自由地演化。

Reference


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM