設計模式的六大原則

2021-09-19 13:28:22 字數 1707 閱讀 9455

那麼設計模式有那幾個原則呢?

單一職責模式

開放-封閉原則

依賴倒轉原則

裡式代換原則

迪公尺特法原則

合成/聚合復用原則

什麼是單一職責原則呢?

單一職責原則(srp):對於乙個類,只有乙個引起它變化的原因。

舉例:我們來說一下人吧。家每天都有很多要做的事情,我們就說要一心一意的做一件事情,其實也是符合這個原則的。

小明既想要寫作業,又想看電視劇集,他選擇了一邊學習一遍看劇。然後小明的狀態變成了,一會被學習難到,一會被劇情吸引。最後兩件事情都沒有做好。劇情也忘記了,學習也沒學會。所以我們需要遵守單一職責原則。讓你的心裡只有學習

結論:舉一反三,如果乙個類承受的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或抑制這個類完成其他職責的能力。

什麼是開放-封閉原則呢?

開放-封閉原則:軟體實體(類、模組、函式等等)應該可以擴充套件,但是不可修改。

舉例:繼續那上面的例子舉例,本來對於小明來說學習就是一件很重要的事情,但是他還想要看劇,但是不能去修改之前學習的計畫,那麼就可以對自己的進行乙個擴充套件啊。利用學習之間的休息時間看劇放鬆一下。這個樣子的小明就遵守了開放-封閉原則

結論:面對需求,對程式的改動是通過增加新**進行的,而不是更改現有的**。

什麼是依賴倒轉原則呢?

依賴倒轉原則:

①高層模組不應該依賴於底層模組。兩個都應該依賴抽象(抽象具體一點就是介面或抽象類)。

②抽象不應該依賴細節。細節應該依賴抽象。

其實就是說要針對於介面程式設計,而不是實現程式設計。

舉例:舉乙個我們做專案的例子吧。提高班有很多專案,專案組長應該算是高層人員了,然後組員是底層人員。專案組長把任務分發下去,組員就根據任務來進行工作。只要任務沒有問題,負責任務的人是可以更換的。他們之間都是通過任務來實現的,也就是說他們都是依賴於乙個介面。

什麼是裡式代換原則呢?

裡式代換原則(lsp):子型別必須能夠替換掉他們的父型別。其實就是說乙個軟體實體如果使用的是父類的話,那麼一定使用於子類,而且他察覺不出父類物件和子類物件的區別。也就是說,在軟體裡面,把父類都替換成他的子類,程式也沒有變化。

舉例:比如現在有乙個電腦要搬一台電腦。而大學生和老師都是人的子類。以前都是找了乙個人小明搬電腦,但是小明今天請假了,有乙個老師小李給搬電腦了。只要這個搬電腦的工作完成了,是感覺不到變化的。

什麼是迪公尺特法原則呢?

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

舉例:平時我們的網線壞了,那麼你是找網線部門的某個人來修呢?還是找網線部門呢?其實我們只需要發個審批網線部門就會找人來給我們修,我們不需要知道是誰來修。

什麼是合成/聚合復用原則呢?

合成/聚合復用原則(carp):盡量使用合成/聚合,盡量不要使用類繼承。

設計模式六大原則

0.05 設計模式 設計模式 規範 筆記 大話設計模式 物件導向的關鍵在於封裝,封裝好了才能很好的復用,達到單一職責和開放擴充套件 封閉更改的效果。1 單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因.增加功能不應該修改已有的 避免修改出錯及重複測試.如果你能夠想到多於乙個的動機去改變乙個類...

設計模式六大原則

0.05 設計模式 設計模式 規範 筆記 大話設計模式 物件導向的關鍵在於封裝,封裝好了才能很好的復用,達到單一職責和開放擴充套件 封閉更改的效果。1 單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因.增加功能不應該修改已有的 避免修改出錯及重複測試.如果你能夠想到多於乙個的動機去改變乙個類...

設計模式六大原則

參考文章 單一職責原則 single responsibility principle,srp 乙個類只負責乙個功能領域中的相應職責,或者可以定義為 就乙個類而言,應該只有乙個引起它變化的原因。開閉原則 open closed principle,ocp 乙個軟體實體應當對擴充套件開放,對修改關閉。...