在總結設計模式之前,我覺得有必要把程式設計中要遵循的幾個設計原則總結一下,因為在後面總結設計模式的時候,你會發現,基本上設計模式都是設計原則的體現和應用而已,有助於我們後期的總結學習。
單一職責原則:就乙個類而言,應該僅有乙個引起它變化的原因。如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意想不到的破壞。
開放-封閉原則:軟體實體(類,模組,函式等等)應該可以擴充套件,但是不可修改。也就是說對於擴充套件是開放的,對於更改是封閉的。面對需求,對程式的改動是通過增加新**進行的,而不是更改現有的**,這就是開放-封閉原則的精神所在。
依賴倒轉原則:a.高層模組不應該依賴底層模組。兩個都應該依賴抽象。b.抽象不應該依賴細節。細節應該依賴抽象。無論是高層模組還是底層模組,都應該去依賴抽象,即程式中所有的依賴關係都是終止於抽象類或者介面,那就是物件導向的設計。
黎克特制代換原則(lsp):子型別必須能夠替換掉他們的父型別。即乙個軟體實體如果使用的是乙個父類的話,那麼一定適用於其子類,而且它察覺不出父類物件和子類物件的區別。也正是有了這個原則,使得繼承復用成為了可能。這也是開放-封閉原則的基礎,正是由於子型別的可替換性才使得父類型別的模組在無需修改的情況下就可以擴充套件
迪公尺特法則:如果兩個類不必發生直接通訊,那麼兩個類就不應當發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三者**這個呼叫。其根本思想就是強調了類之間的松耦合。類之間的耦合越弱,越有利於復用,乙個處在弱耦合的類被修改,不會對有關係的類造成波及。也就是說資訊的隱藏有利於軟體的復用。
合成/聚合復用原則:盡量使用合成/聚合,盡量不要使用類繼承。合成和聚合都是關聯的特殊種類。聚合表示一種弱的『擁有』關係,體現的是a物件可以包含b物件,但b物件不是a物件的一部分(就像大雁和雁群的關係);合成則是一種強的『擁有』關係,體現了嚴格的部分與整體的關係,部分和整體的生命週期一樣(比如大雁和翅膀)。
好了程式設計的六大原則就先介紹到這裡,在後續總結設計模式的過程中,我們還會經常提到複習。
《大話設計模式》設計原則
單一職責原則 srp 就乙個類而言,應該僅有乙個引起它變化的原因。如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意想不到的破壞。軟體設計真正要做的許多內容,就是發現職責並把那些職責相...
大話設計模式之 開放,封閉原則
1 開放 封閉原則,是說軟體實體 類 模組 方法等等 應該可以擴充套件,但是不可以修改 2 對於擴充套件時開放的,對於更改時封閉的。面對需求的改變,可以保持相對的穩定,從而使得系統可以再第乙個版本後可以不斷的推出新版本 3 無論模組時多麼的封閉,都會存在一些無法對之封閉的變化。既然不可能完全封閉,設...
大話設計模式讀書筆記之設計原則
1.單一職責原則 srp 對於乙個類而言,應該僅有乙個引起它變化的原因。如果你能夠想到多於乙個的動機去改變乙個類,那麼這個類就具有多於乙個的職責,就應該考慮類的職責分離。2.開放 封閉原則 是說軟體實體 對於類,模組,函式,方法等 對於擴充套件是開放的,對於修改是關閉。開放封閉原則是物件導向設計的核...