設計模式:行爲型模式

設計模式之行爲型模式

行爲型模式用於描述程序在運行時複雜的流程控制,即描述多個類或對象之間怎樣相互協作共同完成單個對象都無法單獨完成的任務,它涉及算法與對象間職責的分配。

行爲型模式分爲類行爲模式和對象行爲模式,前者採用繼承機制來在類間分派行爲,後者採用組合或聚合在對象間分配行爲。由於組合關係或聚合關係比繼承關係耦合度低,滿足“合成複用原則”,所以對象行爲模式比類行爲模式具有更大的靈活性。

行爲型模式是 GoF 設計模式中最爲龐大的一類,它包含以下 11 種模式。

  1. 模板方法(Template Method)模式:定義一個操作中的算法骨架,將算法的一些步驟延遲到子類中,使得子類在可以不改變該算法結構的情況下重定義該算法的某些特定步驟。
  2. 策略(Strategy)模式:定義了一系列算法,並將每個算法封裝起來,使它們可以相互替換,且算法的改變不會影響使用算法的客戶。
  3. 命令(Command)模式:將一個請求封裝爲一個對象,使發出請求的責任和執行請求的責任分割開。
  4. 職責鏈(Chain of Responsibility)模式:把請求從鏈中的一個對象傳到下一個對象,直到請求被響應爲止。通過這種方式去除對象之間的耦合。
  5. 狀態(State)模式:允許一個對象在其內部狀態發生改變時改變其行爲能力。
  6. 觀察者(Observer)模式:多個對象間存在一對多關係,當一個對象發生改變時,把這種改變通知給其他多個對象,從而影響其他對象的行爲。
  7. 中介者(Mediator)模式:定義一箇中介對象來簡化原有對象之間的交互關係,降低系統中對象間的耦合度,使原有對象之間不必相互瞭解。
  8. 迭代器(Iterator)模式:提供一種方法來順序訪問聚合對象中的一系列數據,而不暴露聚合對象的內部表示。
  9. 訪問者(Visitor)模式:在不改變集合元素的前提下,爲一個集合中的每個元素提供多種訪問方式,即每個元素有多個訪問者對象訪問。
  10. 備忘錄(Memento)模式:在不破壞封裝性的前提下,獲取並保存一個對象的內部狀態,以便以後恢復它。
  11. 解釋器(Interpreter)模式:提供如何定義語言的文法,以及對語言句子的解釋方法,即解釋器。

以上 11 種行爲型模式,除了模板方法模式和解釋器模式是類行爲型模式,其他的全部屬於對象行爲型模式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章