設計模式的概念以及物件導向設計原則

2022-08-26 17:12:14 字數 1476 閱讀 5015

設計模式的定義

設計模式(design pattern)是一套物件導向的**設計經驗總結。

設計模式是一種思想,也是一種技術。

一種設計模式就是一種解決實際問題的方案。

每一種設計模式雖然有既定的結構圖和基本程式**,但是應該不侷限於此,要理解其精髓而熟練應用。

oop的六大設計原則

單一職責原則

定義:對於乙個類,應該只有乙個引起它變化的原因。

|-----降低類的複雜度,乙個類只負責一項職責,其邏輯肯定要比負責多項職責簡單。

|-----提高類的可讀性,提高系統的可維護性。

黎克特制代換原則

定義:子型別必須能夠替換掉它們的父型別。

|-----反映了子類和父類的關係

|-----如果乙個軟體實體使用的是乙個父類,那麼就肯定適用於其子類,並且該軟體實體察覺不出父類物件和子類物件的區別。

|-----正是由於父型別的可替換性,才使得父類型別的模組在無需修改的情況下,就可以通過使用不同的子類得到擴充套件。

|-----黎克特制替換原則是對實現抽象化的具體步驟的規範。

開放-封閉原則

定義:程式的實體物件(模組、類、函式等)應該可以進行擴充套件,但不應該可以修改。

|-----開閉原則是物件導向開發中所有設計原則的核心。

|-----對已有程式的擴充套件優先採用新增新的類或者模組的方式來進行,而不是通過修改現有的類或者模組來進行。

|-----軟體設計本身所追求的目標就是封裝變化、降低耦合,ocp是對這一目標的最直接的體現。

依賴倒轉原則

定義:程式的高層模組不應該依賴底層模組,但兩者都應依賴於抽象;抽象不應該依賴於具體,而細節應該依賴於抽象。

|-----即要針對介面程式設計,而不是針對實現程式設計。

|-----依賴倒轉原則的本質是通過抽象(介面或抽象類)使各個類或模組的實現彼此獨立,不互相影響,從而實現模組間的松耦合。

|-----簡單來將,依賴倒轉原則就是要求客戶端應該依賴於抽象耦合。傳統的過程性系統設計傾向於使高層次模組依賴於低層次模組,抽象的層次依賴於具體的層次。現在要將這個錯誤的依賴關係「倒轉」過來。

|-----使用這個原則,意味著上層類不直接使用底層類,他們使用介面作為抽象層。

合成/聚合復用原則

定義:盡量不適用類繼承,而盡量使用合成/聚合。

|-----聚合表示弱的擁有關係,合成則表達強的擁有關係,體現的是嚴格的整體與部分之間的關係。

迪公尺特法則

定義:如果兩個類之間不必直接通訊,則這兩個類不應該發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某個方法,可以通過第三方來**這個呼叫。

|-----talk only to your immediate friends.

|-----強調的前提是在類的結構設計上,每乙個類都要盡量降低成員的訪問許可權,類自己包裝好自己的private狀態,不需要讓別的類知道的屬性or行為就不公開。

|-----迪公尺特法則的根本思想,是強調類之間的盡量實現鬆散耦合。類之間的耦合越弱,越有利於復用。

物件導向設計模式一 概念

每乙個模式描述了乙個在我們周圍不斷重 生的問題,以及該問題的解決方案的核心。這樣,你就能一次又一次 地使用該方案而不必做重複勞動 christopher alexander 做法 應對變化,提高復用。目的 乙個系統總是趨於穩定與變化之間,根據變化點選擇合適的設計模式,增強系統的靈活性。依據 物件導向...

物件導向 設計模式

提到設計模式,不得不感謝gof gang of four,四人組 他們1995年出版的 設計模式 一書,第一次將設計模式提公升到理論高度,並將之規範化。書中一共總結了23種基本的設計模式。而這23中設計模式幾乎涵蓋了物件導向設計過程中所有問題的解決方案。書中提到的23種設計模式分別是 1.單例模式 ...

設計模式 物件導向

所謂的設計原則也好,設計模式也罷,無非是在物件導向的前提下產生的。而物件導向的前提是抽象,物件導向的三大特徵是封裝 繼承 多型。為了從本質上理解設計模式,下面我們分析一下這些概念之間的關係。請看下圖 物件導向思想的前提是抽象,從現實世界中抽象出一些物件或者類的共性之後封裝成類或者抽象類或者介面。這些...