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