設計模式之六大原則

2022-01-17 05:27:55 字數 1034 閱讀 3028

參考文章:

定義:乙個類只負責乙個功能領域中的相應職責(就乙個類而言,應該只有乙個引起它變化的原因)

該職責要求在物件導向設計時乙個類只需要負責乙個領域的功能,避免多個功能領域或者說多個例項都對應同乙個類,這樣降低**之間的耦合度,提高內聚程度。

定義:乙個軟體實體應當對擴充套件開放,對修改關閉。即軟體實體應盡量在不修改原有**的情況下進行擴充套件。

字面理解很清晰,意思就是設計物件時要考慮到擴充套件性,未來應當只允許對現有**進行擴充套件,不能隨意修改現有**,這樣也可以避免更多的麻煩和bug出現。

在開閉原則中,我們可以使用抽象化設計來實現該類原則。可以使用介面、抽象類等等方式定義抽象層,再根據不同需求來寫具體的實現類,以此達到高擴充套件性的要求。

定義:所有引用基類(父類)的地方必須能透明地使用其子類的物件。

該原則意思是父類物件可以使用子類物件或者說可以使用子類物件來代替父類的物件,但是不能用父類的物件來代替子類的物件。

定義:抽象不應該依賴於細節,細節應當依賴於抽象。換言之,要針對介面變成,而不是針對實現程式設計。

依賴注入(dependencyinjection,di):指當乙個物件要與其他物件發生依賴關係時,通過抽象來注入所依賴的物件。常見注入方式有:構造注入,設值注入(setter)和介面注入。定義:使用多個專門的介面,而不使用單一的總介面,即客戶端不應該依賴那些它不需要的介面。

該原則理解起來也相對簡單,當我們用介面來進行設計時,盡量將介面的功能獨立,避免乙個介面被大量依賴。但是,也不能將介面分得太細,這樣也不利於後期的維護,所以這之間的度是設計者需要體會的關鍵。

定義:乙個軟體實體應當盡可能少地與其他實體發生相互作用。

在物件設計時每個類要避免過於依賴其他的類,要盡量降低其入口的訪問許可權。實現物件只和與自己的相關物件聯絡在一起。

​ 整體來說,六大設計原則都圍繞著乙個點,就是降低**之間的耦合度,也就是降低他們之間的關聯程度,盡可能提高程式的後期擴充套件性。開閉原則、黎克特制替換原則、依賴倒轉原則一般會結合起來使用,可以說開閉原則是最終目標、黎克特制替換原則是基礎、依賴倒轉原則是實現手段。

設計模式之六大原則

無規矩不成方圓,同樣的設計模式也有其內定的一些規則,這些規則使得我們更加方面的使用設計模式的各種模式。以下簡介六個原則 1 單一職責原則 定義 就乙個類而言,應該僅有乙個引起它變化的原因。解釋 如果乙個類承擔的職責過多,則就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責...

設計模式之 六大原則

設計模式中,有六大經典的原則,以下是本人在學習過程中總結的,學習過程中參考了 大話設計模式 這本書,以下為個人見解,如有不當,請大家指出。以便幫助後學習的朋友更簡單的理解和學習。1 單一職責原則 single responsibility principle 顧名思義,單一職責,就是讓系統中的每個類...

設計模式之六大原則

設計模式 6大原則 概念 就乙個類而言,應該僅有乙個引起它變化的原因。解釋 所謂的單一職責,就是說乙個類能完成的功能只有乙個,如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。自我感覺乙個類就跟乙個人一樣,乙個人的精力是有限的,如果擔任過...