1.單一職責原則(single responsibility principle,簡稱srp),就乙個類而言,應該僅有乙個引起它變化的原因。
如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意想不到的破壞。
2.開放-封閉原則(the open-closeed principle,簡稱ocp),是說軟體實體(類、模組、函式等等)應該可以擴充套件,但是不可修改。
對於擴充套件是開放的(open for extension) 對於更改是封閉的(closed for modification)
開放-封裝原則是物件導向設計的核心所在。遵循這個原則可以帶來物件導向技術所聲稱的巨大好處,也就是可維護、可擴充套件、可復用、靈活性好。開發人員應該僅對程式中頻繁變化的那些部分做出抽象,然而,對於應用程式中的每個部分都刻意地進行抽象同樣不是乙個好主意。拒絕不成熟的抽象和抽象本身一樣重要。
3.依賴倒置原則(dependence inversion principle ,簡稱dip),a.高層模組不應該依賴低層模組。倆個都應該依賴抽象。b.抽象不應該依賴細節。細節應該依賴抽象。
針對介面程式設計,不要對實現程式設計。
4.黎克特制代換原則(liskov substitution principle,簡稱 lsp),子型別必須能夠替換掉它們的父型別。
乙個軟體實體如果使用的是乙個父類的話,那麼一定適合於其子類,而且它察覺不出父類物件和子類物件的區別。也就是說,在軟體裡面,把父類都換成它的子類,程式的行為沒有變化。
5.迪公尺特法則(law of demeter,簡稱lod)也叫最小知識原則(least knowledge principle 簡寫lkp)如果倆個類不必直接通訊,那麼這倆類就不應當發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三者**這個呼叫。
迪公尺特法則首先強調的前提是在類的結構設計上,每乙個類都應當盡量降低成員的訪問許可權。
迪公尺特法則其根本思想,是強調了類之間的松耦合。類之間的耦合越小,越有利於復用,乙個處在弱耦合的類被修改,不會對有關係的類造成波及。
6.合成/聚合復用原則(composite/aggregate reuse principle ,簡稱carp)盡量使用合成/聚合,盡量不要使用類繼承。
carp的好處是:優先使用物件的合成/聚合將有助於你保持每個類被封裝,並被集中在單個任務上。這樣類和類繼承層次會保持較小規模,並且不太可能增長為不可控制的龐然大物。
設計模式 設計模式原則
1 單一職責原則 srp 乙個類應當只有乙個引起其變化的原因。使用單一職責原則的好處有 1 類的複雜性降低 2 可讀性提高 3 可維護性提高 4 變更引起的風險降低 2 黎克特制替換原則 lsp 在使用父類的地方,可以使用其子類替換。黎克特制替換原則的含義 1 子類必須完全實現父類的方法 2 子類可...
設計模式 設計原則
description 這是本人學習 設計模式之禪 的筆記 設計原則 一 單一職責 應該有且僅有乙個原因讓乙個類發生變更。這個原則目的是要讓介面的職責分明,結構清晰。優點 類的複雜度降低,可讀性提高,變更風險低,可維護性提高。二 黎克特制替換 通俗一點就是父類存在的地方,可以替換為子類,而程式的行為...
設計模式 設計原則
單一職責原則srp 當設計封裝乙個類時,這個類應該只負責一件事。如果向乙個類中不斷加入功能,會使介面過於複雜,整個專案過於依賴這個類,使整個專案或類失去彈性,所以我們要在開發時將功能分好類,實現單一職責原則。開閉原則ocp 乙個類應該對擴充套件開放,對修改關閉。當我們增加功能時,應該以增加繼承子類的...