許多人應該聽過設計模式(Design pattern),或多或少地看到或使用過設計模式,但是在開發過程中的實際使用總是感覺沒有足夠的力量。設計模式必須是對設計模式的輕微偏離或理解不足。當然也有許多人沒有聽說過設計模式,今天我們這里不討論特定的模型,先來看看具體的設計模式到底是什么?設計模式的表述格式怎么劃分的?
設計模式是什么?
設計模式(英語 design pattern)是對面向對象設計中反復出現的問題的解決方案。這個術語是在1990年代由Erich Gamma等人從建筑設計領域引入到計算機科學中來的。這個術語的含義還存有爭議。算法不是設計模式,因為算法致力于解決問題而非設計問題。設計模式通常描述了一組相互緊密作用的類與對象。設計模式提供一種討論軟件設計的公共語言,使得熟練設計者的設計經驗可以被初學者和其他設計者掌握。設計模式還為軟件重構提供了目標。
隨著軟件開發社群對設計模式的興趣日益增長,已經出版了一些相關的專著,定期召開相應的研討會,而且Ward Cunningham為此發明了WikiWiki用來交流設計模式的經驗。
設計模式的表述格式怎么劃分的?
表述一個軟件設計模式的格式根據作者的不同,劃分和名稱等都會有所不同。常用的描述模式的格式大致分為以下這些部分:
模式名:每一個模式都有自己的名字,模式的名字使得我們可以討論我們的設計。
問題:在面向對象的系統設計過程中反復出現的特定場合,它導致我們采用某個模式。
解決方案:上述問題的解決方案,其內容給出了設計的各個組成部分,它們之間的關系、職責劃分和協作方式。
別名:一個模式可以有超過一個以上的名稱。這些名稱應該要在這一節注明。
動機:在哪種情況使用該模式,是本節提供的方案(包括問題與來龍去脈)的責任。
適用性:模式適用于哪些情況、模式的背景等等。
結構:這部分常用類圖與交互圖闡述此模式。
參與者:這部分提供一份本模式用到的類與對象清單,與它們在設計下扮演的角色。
合作:描述在此模式下,類與對象間的交互。
影響:采用該模式對軟件系統其他部分的影響,比如對系統的擴充性、可移植性的影響。影響也包括負面的影響。這部分應描述使用本模式后的結果、副作用、與權衡(trade-off)。
實現:這部分應描述實現該模式、該模式的部分方案、實現該模式的可能技術、或者建議實現模式的方法。
示例:簡略描繪出如何以編程語言來使用模式。
已知應用:業界已知的實現示例。
相關模式:這部分包括其他相關模式,以及與其他類似模式的不同。
上述就是關于設計模式是什么,以及設計模式的表述格式怎么劃分的全部內容介紹,想了解更多關于設計模式的信息,請繼續關注中培偉業。