設計模式之六大原則

2021-06-21 00:46:57 字數 1466 閱讀 1858

無規矩不成方圓,同樣的設計模式也有其內定的一些規則,這些規則使得我們更加方面的使用設計模式的各種模式。以下簡介六個原則

1

、單一職責原則

定義:就乙個類而言,應該僅有乙個引起它變化的原因。

解釋:如果乙個類承擔的職責過多,則就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當發生變化時,設計會遭受到意想不到的破壞。舉個例子如下:

t負責兩個不同的職責:職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p2功能發生故障。也就是說職責p1和p2被耦合在了一起。

2

、開放--

封閉原則

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

解釋:開放是對於擴充套件功能用的,封閉則是對於原有功能的**的不可更改性。面對需求,對程式的改動是通過增加新**進行的,而不是更改現有的**。 開放

--封閉原則是物件導向設計的核心所在。遵循這個原則可以帶來物件導向技術所聲稱的巨大好處,也就是可維護性、可擴充套件、可復用、靈活性好。

3

、依賴倒轉原則

定義:高層模組不應該依賴底層模組。兩個都應依賴抽象。抽象不應該依賴細節。細節應該依賴抽象。

解釋:針對介面程式設計,不要對實現程式設計。說的簡單點就是:如果電腦裡面的

cpu、記憶體、硬碟都需要依賴於具體的主機板,主機板一壞,所有的部件就都不能用了,顯然很不合理。反過來如果記憶體壞了也不影響其他的部件。其實現就是利用介面或抽象類,不管搞成模組還是底層模組,都依賴於介面或抽象類,只要介面穩定,那麼乙個的更改不會影響到其他的。就像電腦記憶體壞了,直接換根記憶體條就行,而不影響其他的。

4

、黎克特制代換原則

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

解釋:乙個軟體實體如果使用的是乙個父類,那麼一定適用於其子類,而且它察覺不出父類物件和子類物件的區別。也就是說,軟體裡面,把父類都替換成它的子類,程式的行為沒有變化。舉個簡單的例子:

動物類都有睡覺這個行為,其子類馬繼承動物同樣得到睡覺這個行為,沒有什麼變化。

5

、迪公尺特法則

定義:如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某一方法的話,可以通過第三者**這個呼叫。

6

、合成\

聚合復用原則

定義:盡量使用合成

\聚合,盡量不要使用類繼承。

解釋:聚合表示一種弱的「擁有」關係,提現的是

a物件可以包含

b物件,但

b物件不是

a物件的一部分;合成則是一種強的「擁有」關係,提現了嚴格的部分和整體的關係,部分和整體的生命週期一樣。比如:雁群和大雁是聚合關係,而大雁和翅膀是合成關係。

設計模式之 六大原則

設計模式中,有六大經典的原則,以下是本人在學習過程中總結的,學習過程中參考了 大話設計模式 這本書,以下為個人見解,如有不當,請大家指出。以便幫助後學習的朋友更簡單的理解和學習。1 單一職責原則 single responsibility principle 顧名思義,單一職責,就是讓系統中的每個類...

設計模式之六大原則

設計模式 6大原則 概念 就乙個類而言,應該僅有乙個引起它變化的原因。解釋 所謂的單一職責,就是說乙個類能完成的功能只有乙個,如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。自我感覺乙個類就跟乙個人一樣,乙個人的精力是有限的,如果擔任過...

設計模式之六大原則

單一職責原則 單一職責原則 srp 乙個類而言,有且只有乙個引起它變化的原因。例子 攝像機和手機相比,攝像機攝像的職責單一,攝像效果清晰 程式設計時要做到單一職責,這樣的 易維護 擴充套件 復用 靈活多樣 開放 封閉原則 開放 封閉原則 軟體實體 類 模組 函式等 可以擴充套件,但是不可修改 對於擴...