設計模式 六大原則

2021-07-09 01:13:54 字數 1760 閱讀 4564

大話設計模式已經接近尾聲了,感受最深的就是「六大原則」,有了它,我們在應用模式的時候變得更加的高效。同時「小菜」得以步步高公升。百聞不如一見,瞧好兒吧!

二話不說,有圖有真相。

定義:第一,  高層模組不應該依賴低層模組。兩個都應該依賴抽象;

第二,  抽象不應該依賴細節。細節應該依賴抽象。(依賴介面程式設計,不要對實現程式設計。

解釋:例如:無論主機板、cpu、記憶體、硬碟都是針對介面設計的,如果針對實現類設計,記憶體就要對應到具體的某個品牌的主機板,這就出現了換記憶體就得換主機板的尷尬。

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

解釋:意味著,子類擁有父類所有非private的行為和屬性。只有當子類可以替換掉父類,軟體單位的功能不受影響,父類可以被真正的復用,更驚喜的是,子類可以在此基礎上增加新的行為。

定義:聚合表示一種弱的「擁有」關係,體現的是a物件可以包含b物件,但b物件不是a物件的一部分;合成則是一種強的「擁有」關係,體現了嚴格的部分和整體的關係,部分和整體的生命週期一樣。

解釋:聚合和合成都是部分與整體的關係,但是聚合是部分和整體之間可以分開,合成是部分和整體之間不可用分開。優先使用物件的合成/聚合將有助於你保持每個類被封裝,並被集中在單個任務上。這樣類與類之間的繼承層次會保持較小規模,不至於增長為不可控制的大規模。在用到多種繼承上,用該原則更加可以保持類與類之間的低耦合。

定義:

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

解釋:如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意向不到的破壞。就相當於公司的負責人如果承當的職務過多,單個工作效率肯定沒有就承擔乙個的高。

定義:

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

解釋:其根本思想,是強調了類之間的松耦合。類之間的耦合越弱,越有利於復用,乙個處在弱耦合的類被修改,不會對有關係的類造成波及。反過來說,資訊的隱藏在一定程度上促進了軟體的復用。

定義:

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

解釋:對於擴充套件來說是開放的,對於更改來說時封閉的。我們在編碼的時候不知道後期那部分需要更改,所有我們必須發揮我們的主觀能動性,假設一些變化不會發生,當變化發生時,我們就建立抽象來隔離以後發生同類的變化。該原則是物件導向設計的核心所在。這個原則用好了,方便了後期的維護,可擴充套件,可復用,靈活性好。

進入軟體工程學習以來,可謂每學習乙個階段都有所謂的原則,規則在不斷的規範我們的開發過程,讓我們盡可能減少軟體危機的發生。自從學習設計模式以來,真真切切的理解了什麼是高內聚、低耦合。為什麼要高內聚、低耦合,設計模式的六大原則又進一步規範了我們的軟體生活。自己在後期的學習中,還要對這方面多多實踐,多多理解,多多運用。

設計模式六大原則

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

設計模式六大原則

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

設計模式六大原則

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