設計模式是分析過的問題和問題解決方案所闡釋的優秀實踐
每個模式都描述着一種在我們的環境中一遍又一遍的出現的問題,並描述了對該問題的核心解決方案。以此方式你可以使用該方案上百萬次,而從不需要重復做同樣的事情
------《A Pattern Language》
模式是類和對象的一種特殊組織形式,是以定義解決方案的應用條件並討論其效果的形式來組織的。
一個設計模式的核心右四部分組成:
- 命名:少許簡短的文字便可表示相當復雜的問題和解決方案(簡潔性、描述性)
- 問題:找出問題比使用模式目錄中的解決方案更難;這正是某些模式的解決方案被無用的原因之一
- 解決方案:雖然問題的解決方案總是相同的,但是實際采用的步驟依賴於各種因素
- 效果
模式結構只要組成部分
- 意圖:模式目的的簡要概括
- 動機:需要被解決的為問題
- 適用性:檢驗不同情況下你是否可以應用某模式
- 結構/交互:描述解決方案中類和對象之間的關系
- 實現:着眼於解決方案的細節,介紹了應用解決方案時可能發生的問題,並提供了部署的技巧
- 示例代碼:范例通常都會被簡化以突出解決方案的核心內容
- 已知應用:(三法則:一次出現是偶然現象,兩次出現是巧合,三次出現才可稱為一個模式)
- 相關模式:在使用某個模式時,可以創造出另一個模式使用的條件(模式間的合作)
為什么使用設計模式
- 一個設計模式定義了一個問題(有時找到解決方案的第一步便是認清你面對的問題)
- 一個設計模式定義了一個解決方案
- 設計模式是語言無關的(模式以面向對象的方式來定義對象和解決方案)
- 模式定義了一組詞匯(通過給開發人員提供技術的名稱,模式使溝通更加豐富;技術是超越它們的命名和組織的)
- 模式是經過測試的(在面向對象環境中,模式代表着最佳實踐)
- 模式是為協作而設計的(模式生來就是“可生成的”和“可組成的”)
- 設計模式促進良好設計(設計模式示范應用了面向對象原則)
原文發自:wenjun.in