設計模式 1 章-組件協作模式

  1. Template Method
    1. 背景
      1. 具有穩定的整體操作結構,各個子步驟有很多改變的需求
      2. 存在固有的原因(框架與應用之間的關係)無法和任務的整體結構同時實現
    2. 目的
      1. 在穩定操作結構的前提下,來靈活應對各個子步驟的變化或者晚期實現需求
      2. 只允許特定步驟被修改,保持框架穩定
    3. 定義
      1. 定義一個操作中的演算法骨架(穩定),將一些步驟延遲到子類中 Template Method 可以不改變(復用)一個演算法的結構即可重新定義該演算法的某些特定步驟
    4. 要點
      1. 使用簡潔的機製為程序框架提供了靈活的擴展點,是代碼復用方面的基本實現結構
      2. 『不要調用我,讓我來調用你』的反向控制結構是 Template Method 的典型用法
    5. 代碼
      1. Python
      2. Golang
  2. Observer
    1. 背景
      1. 需要為某些對象建立『通知依賴關係』一個對象的狀態發生變化,所有的依賴對象得到通知
    2. 目的
      1. 將『通知依賴』緊密的依賴(編譯時)關係弱化(運行時),形成穩定依賴關係,從而實現松耦合(對象間依然可以交互,但是不清楚彼此的細節)
    3. 定義
      1. 定義對象間的一對多關係,當一個對象的狀態發生變化時,所有依賴對象都得到通知並自動更新
    4. 要點
      1. 可以獨立地改變目標和觀察者,從而使二者的依賴關係弱化,達到松耦合
      2. 目標發送通知時,無需指定觀察者,通知會自動傳播
      3. 觀察者自己決定是否需要訂閱通知,目標對象對此一無所知
    5. 代碼
      1. Python
      2. Golang

推薦閱讀:

編程中所講的「思維深度」的本質是什麼?
C++程序設計(一):數據的存儲,形式和運算
Arduino UNO 俄羅斯方塊
為什麼要學習 Vim?

TAG:設計模式 | 編程 | 架構 |