設計模式 概述

導讀:

    設計模式描述了軟件設計過程中某一類常見問題的一般性解決方案。

      面向對象設計模式描述了面向對象設計過程中、特定場景下、類與相互通信的對象之間常見的組織關係。

                                                                                                                                                                                                                                             以下所講設計模式即指“面向對象設計模式”。                                                                


定義:

模式(Pattern)—從生產經驗和生活中經驗中經過抽象昇華提煉出來的核心知識體系,也可以看作是解決某一類問題的方法。把解決某類問題的方法總結歸納到理論高度,就是模式。模式是一種指導

特點:

  1. 在特定的場景下有可重用性,對相同類型不同問題的環境,其解決方案都有效。
  2. 可傳授性,即問題出現的機會很多,解決問題的方案相同,人們相對可以接受。
  3. 有表示模式的名稱。
   “設計模式(Design pattern)”也是一種模式,是一套唄反覆使用、多數人知曉、經過分類編目的、代碼設計經驗的總結。

在軟件開發中使用頻率較高的23種設計模式,旨在用模式來統一溝通面向對象方法在分析、設計和實現間的鴻溝。

設計模式的基本要素:

對於一個新的模式,它必須滿足大三率(Rule of Three):一個解決方案必須在三個完全不同類型或者不同領域的系統中得以應用纔有資格成爲候選模式。
四種基本要素:
  1. 模式名稱

模式名稱(pattern name)是一個助記名,它用一兩個詞來描述模式的問題。解決方案和效果。

  1. 問題

問題(problem)描述了應該在何時使用模式。它解釋了設計問題和問題存在的前因後果,它可能描述了特定的設計問題,如怎樣用對象表示算法;也可能描述了導致不靈活設計的類或對象結構。

  1. 解決方案

解決方案(solution)描述了設計的組成成分,他們之間的相互關係及各自的職責和協作方式 。

  1. 效果

效果(consequences)描述了模式應用的效果及使用模式應權衡的問題。模式效果包括它對系統的靈活性、擴充性或可移植性的影響。

列如,觀察者模式:

  • 名稱——觀察者。
  • 問題——定義對象間的一種一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴泰德對象都得到通知並被自動更新。
  • 解決方案——主題(Subject)接口、觀察者接口、具體主題、具體觀察者。
  • 效果——一個對象的狀態發生改變,所有的依賴對象都將得到通知,講觀察者和觀察者解耦,保證高度的協作。











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