設計模式簡介

2022-09-11 04:54:12 字數 1568 閱讀 8245

設計模式(design pattern)代表了最佳的實踐,通常被有經驗的物件導向的軟體開發人員所採用。設計模式是軟體開發人員在軟體開發過程中面臨的一般問題的解決方案。這些解決方案是眾多軟體開發人員經過相當長的一段時間的試驗和錯誤總結出來的。

設計模式是一套被反覆使用的、多數人知曉的、經過分類編目的、**設計經驗的總結。使用設計模式是為了重用**、讓**更容易被他人理解、保證**可靠性。 毫無疑問,設計模式於己於他人於系統都是多贏的,設計模式使**編制真正工程化,設計模式是軟體工程的基石,如同大廈的一塊塊磚石一樣。專案中合理地運用設計模式可以完美地解決很多問題,每種模式在現實中都有相應的原理來與之對應,每種模式都描述了乙個在我們周圍不斷重**生的問題,以及該問題的核心解決方案,這也是設計模式能被廣泛應用的原因。 

設計模式在軟體開發中的兩個主要用途。

設計模式提供了乙個標準的術語系統,且具體到特定的情景。例如,單例設計模式意味著使用單個物件,這樣所有熟悉單例設計模式的開發人員都能使用單個物件,並且可以通過這種方式告訴對方,程式使用的是單例模式。

設計模式已經經歷了很長一段時間的發展,它們提供了軟體開發過程中面臨的一般問題的最佳解決方案。學習這些模式有助於經驗不足的開發人員通過一種簡單快捷的方式來學習軟體設計。

1、開閉原則(open close principle)

開閉原則的意思是:對擴充套件開放,對修改關閉。在程式需要進行拓展的時候,不能去修改原有的**,實現乙個熱插拔的效果。簡言之,是為了使程式的擴充套件性好,易於維護和公升級。想要達到這樣的效果,我們需要使用介面和抽象類,後面的具體設計中我們會提到這點。

2、黎克特制代換原則(liskov substitution principle)

黎克特制代換原則是物件導向設計的基本原則之一。 黎克特制代換原則中說,任何基類可以出現的地方,子類一定可以出現。lsp 是繼承復用的基石,只有當派生類可以替換掉基類,且軟體單位的功能不受到影響時,基類才能真正被復用,而派生類也能夠在基類的基礎上增加新的行為。黎克特制代換原則是對開閉原則的補充。實現開閉原則的關鍵步驟就是抽象化,而基類與子類的繼承關係就是抽象化的具體實現,所以黎克特制代換原則是對實現抽象化的具體步驟的規範。

3、依賴倒轉原則(dependence inversion principle)

這個原則是開閉原則的基礎,具體內容:針對介面程式設計,依賴於抽象而不依賴於具體。

4、介面隔離原則(inte***ce segregation principle)

這個原則的意思是:使用多個隔離的介面,比使用單個介面要好。它還有另外乙個意思是:降低類之間的耦合度。由此可見,其實設計模式就是從大型軟體架構出發、便於公升級和維護的軟體設計思想,它強調降低依賴,降低耦合。

5、迪公尺特法則,又稱最少知道原則(demeter principle)

最少知道原則是指:乙個實體應當盡量少地與其他實體之間發生相互作用,使得系統功能模組相對獨立。

6、合成復用原則(composite reuse principle)

合成復用原則是指:盡量使用合成/聚合的方式,而不是使用繼承。

設計模式 設計模式簡介

本次系列的文章摘自 設計模式 可復用物件導向軟體工程的基礎 erich gamma 等著,李英軍 等 譯 本文只是對設計模式做乙個簡單的介紹。設計模式一樣而言,有四個基本要素 1 設計模式 2 問題 3 解決方案 4 效果。設計模式是對被用來在特定的場景下解決一般設計問題的類和相互通訊的物件的描述。...

設計模式簡介

設計模式 design pattern 是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。設計模式是軟體工程 的基石脈絡,如同大廈 的結構一樣。模式名稱 pattern name 問題 problem 解決方案 solution 效果 consequences 設計模式分為三種型別,共...

設計模式簡介

1.裝飾模式 顧名思義,裝飾模式就是給乙個物件增加一些新得功能,而且是動態的,要求裝飾物件和被裝飾物件實現同乙個介面,且裝飾物件中持有被裝飾物件的乙個例項.2.觀察者模式 簡單來說,當乙個物件變化時,其他依賴該物件的物件都會收到通知,並且隨著變化 物件之間是一種一對多的關係.3.工廠模式 客戶端需要...