軟體設計模式概述

2021-09-27 13:12:00 字數 1776 閱讀 8090

設計模式(design pattern)是前輩們對**開發經驗的總結,是解決特定問題的一系列套路。它不是語法規定,而是一套用來提高**可復用性、可維護性、可讀性、穩健性以及安全性的解決方案。

2023年,gof合作出版了《設計模式:可復用物件導向軟體的基礎》一書,共收錄了23種設計模式,從此樹立了軟體設計模式領域的里程碑,人稱【gof設計模式】。

這23種設計模式的本質是物件導向設計原則的實際運用,是對類的封裝性、繼承性和多型性,以及類的關聯關係和組合關係的充分理解。

當然,軟體設計模式只是乙個引導,在實際的軟體開發中,必須根據具體的需求來選擇:

「設計模式」這個術語最初並不是出現在軟體設計中,而是被用於建築領域的設計中。

2023年,美國著名建築大師,加利福尼亞大學伯克利分校環境結構中心主任克里斯托夫-亞歷山卓在他的著作《建築模式語言:城鎮,建築、構造》中描述了一些常見的建築設計問題,並提出了253種關於城鎮、鄰里、住宅、花園和房間等進行設計的基本模式。

2023年他的另外一部經典著作《建築的永恆之道》進一步強化了設計模式的思想,為後來的建築設計指明了方向。

2023年,肯特-貝克和沃德-海爾姆、拉爾夫-約翰森、約翰-威利斯迪斯等四位作者合作出版了《設計模式:可復用物件導向軟體的基礎》一書,在本教程中共收錄了23個設計模式,這是設計模式領域里程碑的事件,導致了軟體設計模式的突破。這四位作者在軟體開發領域也以他們的「四人組」匿名著稱。

軟體設計模式,又稱設計模式,是一套反覆使用、多數人知曉的、經過分類編目的、**設計經驗的總結。它描述了在軟體設計過程中的一些不斷重複 發生的問題,以及該問題的解決方案。也就是說,它是解決特定問題的一系列套路,是前輩們的**設計經驗的總結,具有一定的普遍性,可以反覆使用。其目的是為了提高**的可重用性、**的可讀性和**的可靠性。

設計模式的本質是物件導向設計原則的實際運用,是對類的封裝性、繼承性和多型性以及累的關聯關係和組合關係的充分理解。正確使用設計模式具有以下優點。

可以提高程式設計師的思維能力、程式設計能力和設計能力。

使程式設計更加標準化、**編制更加工程化、使軟體開發效率大大提高,從而縮短軟體的開發周期。

使**的可重用性高、可讀性強、可靠性高、靈活性好、可維護性強。

當然,軟體設計模式只是乙個引導,在具體的軟體開發中,必須根據設計的應用系統的特點和要求來恰當選擇,對於簡單的程式開發,能寫乙個簡單的演算法要比引入某種設計模式更加容易,但對大專案的開發或者框架設計,用設計模式來組織**顯然更好。

軟體設計模式使人們更加簡單方便地復用成功的設計和體系結構,它通常包含以下幾個基本要素:模式名稱、別名、動機、問題、解決方案、效果、結構、模式角色、合作關係、實現方法、適用性、已知應用、例程、模式擴充套件和相關模式等,其中最關鍵的元素還包括以下四個主要部分。

每個模式都有自己的名字,通常用一兩個詞來描述,可以根據模式的問題,特點,解決方案、功能和效果來命名。模式名稱(patternname)有助於我們理解和記憶該模式,也方便我們來討論自己的設計。

問題(problem)描述了該模式的應用環境,即何時該使用該模式。它解釋了設計問題和問題存在的前因後果,以及必須滿足的一系列的先決條件。

模式問題的解決方案(solution)包括設計的組成部分、它們之間的相互關係以及各自的職責和協作方式。因為設計模式就像乙個模板,可應用於多種不同的場合,所以解決方法並不描述乙個特定而具體的設計或實現,而是提供設計問題的抽象描述和怎樣使用乙個具有一般意義的元素組合(類或物件的組合)來解決這個問題。

描述了該模式的應用效果以及使用該模式應該權衡的問題,即模式的優缺點。主要是對時間和空間的衡量,以及該模式對系統的靈活性、擴充性、可移植性的影響,也考慮其實現問題。顯示地列出這些效果(consequence)對理解和評價這些模式有很大的幫助。

軟體設計模式概述

設計模式 這個術語最初並不是出現在軟體設計中,而是被用於建築領域的設計中。1977 年,美國著名建築大師 加利福尼亞大學伯克利分校環境結構中心主任克里斯托夫 亞歷山卓 christopher alexander 在他的著作 建築模式語言 城鎮 建築 構造 a pattern language tow...

1 軟體設計模式概述

設計模式 這個術語最初並不是出現在軟體設計中,而是被用於建築領域的設計中。1977 年,美國著名建築大師 加利福尼亞大學伯克利分校環境結構中心主任克里斯托夫 亞歷山卓 christopher alexander 在他的著作 建築模式語言 城鎮 建築 構造 a pattern language tow...

1 軟體設計模式概述

設計模式 這個術語最初並不是出現在軟體設計中,而是被用於建築領域的設計中。1977 年,美國著名建築大師 加利福尼亞大學伯克利分校環境結構中心主任克里斯托夫 亞歷山卓 christopher alexander 在他的著作 建築模式語言 城鎮 建築 構造 a pattern language tow...