設計模式的作用

2021-08-29 21:45:37 字數 1575 閱讀 6427

構建乙個優秀的系統最困難之處不在於編碼(coding),而是在早期 做出的設計(design)上的決定。設計是軟體開發生命週期中的關鍵階段,好的設計能產生好的產品,而不當的設計則會影響最終產品的質量。設計的重要性 已經深入人心,這從人們熱烈討論和研究設計模式就能看出來。設計模式是擁有多年開發設計經驗的人給我們的經驗傳承,它是作為專家的建議而引入的,它背後的 真正威力是其對真實世界的抽象。如果我們沒有足夠的經驗,我們很難做出好的設計,但是富有經驗的開發者和設計者以設計模式的形式將他們的經驗傳授給我們, 擁有了這些經驗之後,我們也能做出好的設計來了。不僅如此,設計模式還提高了我們軟體復用的水平,從而提高了生產效率。

模式的簡史和分類

軟體設計模式的思想從建築領域(christopher alexander)進化而來。kent beck 和 ward cunningham將christopher alexander的思想應用到軟體領域,他們記下了最初的一些模式(ui方面的);第乙個發表的關於在開發中使用模式的著述是erich gamma於2023年發表的一篇**;而最著名的gof的設計模式(1995)了。

依照開發階段,模式可以被分類為分析模式(analysis patterns)、架構模式(architecture patterns)、設計模式(design patterns)和idiom:

1、 分析模式——分析包括透過需求的表面去了解本質問題。分析模式就是業務模型中的一組表達了通用基礎結構的概念。 

2、 架構模式——架構模式表達了軟體系統的基礎結構組織模型。它提供了一套預先確定的子系統和元件,說明了其職責,還包括為組織它們之間的關係而規定的規則和指導原則。 

3、 設計模式——乙個設計模式提供了乙個模型,此模型提煉了乙個軟體系統的子系統或元件。它描述了乙個通用的可復用的元件,此元件解決了某特定上下文的一般性的設計問題。

4、 idiom——對某個語言特有的乙個低階別的模式。比如某些模式只能使用多繼承的語言表達(c++)。

模式的使用現狀

現有的討論設計模式的書籍著作大多都是介紹和記錄設計模式的,而很少有論及如何在開發新的應用時系統地應用這些可復用的設計。

可以將在應用中使用設計模式分為兩個等級:

1、 偶爾用用。

2、 系統地使用。系統地使用設計模式超出了只是使用某個特定的模式,它可以被分為:

a、 模式語言(pattern languages)。乙個模式語言提供了能解決特定領域問題的一系列模式。它不僅提供了設計模式本身,還提供了這些設計模式之間的關係。它們意味著應用此模式語言完全解決特定領域問題的過程。

b、 開發過程(development processes)。乙個系統化的開發過程定義了乙個模式組合方法、分析和設計的步驟、設計模型和自動化開發步驟的工具。

系統化的開發過程是唯一能使設計模式成為開發中的慣例(common practice)的方法。為此,我們需要作:

1. 定義合成技術。此技術可以被用來組合設計模式去構造系統。

2. 使用合適的模型語言支援此合成技術。

poad

學習設計模式 作用

在物件導向軟體設計過程中針對特定問題的簡介而優雅的解決方案。設計模式捕獲了隨時間進化和發展的問題的求解方法。乙個模式有四個其他要素 模式名稱 幫助記憶 問題 在什麼時候,什麼地方使用模式 效果 描述了模式應用的效果及使用模式應權衡的問題 總體結構 建立型模式與物件的建立有關 建立型類模式將物件的部分...

設計模式的概念與作用

1,什麼是設計模式 設計模式的作用 解決同一種型別的問題 使用設計模式可以讓 結構更加清晰 2,物件導向設計中常見的設計原則 單一職責原則 開 閉原則 開閉原則總結 面對需求,對程式的改動是通過增加新 進行的,而不是改變原來的 黎克特制替換原則 高層模組不應該依賴低層模組,它們都應該依賴抽象。抽象不...

什麼是設計模式?及它的作用

設計模式六大原則 概念 設計模式是一套被反覆使用的 多數人知曉 經過分類編目的優秀 設計經驗的總結。特定環境下特定問題的處理方法。1 重用設計和 重用設計比重用 更有意義,自動帶來 重用 2 提高擴充套件性 大量使用面向介面程式設計,預留擴充套件插槽,新的功能或特性很容易加入到系統中來 3 提高靈活...