設計模式 六大原則

2021-07-27 10:32:40 字數 1457 閱讀 2499

一、單一職責原則

就乙個類而言,應該僅有乙個引起它變化的原因。(高內聚,低耦合)

栗子:小王去一家公司面試,有財務部、人力資源部等等,他只能選擇乙個部門,因為他不可以選擇多個部門,如果從事多個部門,到時候同時有事需要找他的時候,他是接待不過,會耽擱的。所以乙個人只能擔任乙個職務的。

二、開放封閉原則

是說軟體實體(類、模組、函式等等)應該可以擴充套件,但是不可修改。對於拓展的是開放的,對於更改的是封閉的。

好處:是物件導向設計的核心所在,可維護、可拓展、可復用、靈活性好。

三、依賴倒轉原則

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

四、黎克特制代換原則

子型別必須能夠替換掉它們的父型別。(就是繼承,子類繼承了父類)

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

栗子:乙個是鳥類,乙個是企鵝類,如果鳥是可以飛的,企鵝不會飛,那麼企鵝是鳥嘛?企鵝可以繼承鳥這個類嗎?從生物學分類上來說企鵝是一種鳥,但從程式設計世界裡說,企鵝不能以父類鳥的身份出現,因為前提說所有鳥都能飛,而企鵝不能飛,所以,企鵝不能繼承鳥類。

五、迪公尺特法則(最少知識原則)

如果兩個類不必彼此直接通訊,那麼這兩個類就不應該發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三者**這個呼叫。(耦合盡量少,可以通過第三者**這個呼叫)

強調前提:在類的結構設計上,每乙個類都應當盡量降低成員的訪問許可權,也就是說,乙個類包裝好自己的private狀態,不需要讓別的類知道的字段或行為就不要公開。

(低耦合)

栗子:小菜第一天去公司上班,電腦需要重灌,這時人事的小楊給it部打電腦,主管安排小張給小菜裝電腦,小張突然臨時有事,主管又安排小李來處理。同樣道理,我們在程式設計時,類之間耦合越弱,越有利於復用,乙個處在弱耦合的類被修改,不會對有關係的類造成波及。

六、合成/聚合復用原則

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

【總

結】 從開始到結束,一路伴隨 —— 開放封閉原則。

光說是不管用的,需要我們不斷的去實踐,才能夠真正明白它們的好處。實踐!  實踐 !  實踐 !

世間萬物都是遵循某種類似的規律,誰先把握了這些規律,誰就最早成了強者。

設計模式六大原則

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

設計模式六大原則

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

設計模式六大原則

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