設計模式 程式猿必備物件導向設計原則

2022-09-15 05:24:13 字數 2083 閱讀 3316

單一職責原則srp(single responsibility principle)

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

開放-關閉原則ocp(open-closed principle)

乙個軟體的實體應該對擴充套件開放,對修改關閉。

黎克特制代換原則(liskov substitution principle)

子型別必須能夠替換他們的基類(父類)。

依賴倒置原則dip(dependence inversion principle)

要依賴於抽象,不要依賴於具體。

最少知識原則lkp(least knowledge principle)或稱 迪公尺特法則(lod)

乙個類對於其他類知道的越少越好,就是說乙個物件應當對其他物件有盡可能少的了解,只和朋友通訊,不和陌生人說話

介面隔離原則(isp)

使用多個專門的介面比使用單一的功能更多的總介面要好

合成/聚合原則

要盡量使用合成/聚合,而不是繼承關係達到復用的目的

1.單一職責原則srp(single responsibility principle)

所謂單一職責原則就是乙個類僅有乙個引起它變化的原因。這裡變化的原因就是所說的「職責」。如果乙個類有多個引起它變化的原因,那麼也就意味著這個類有多個職責,再進一步說,就是把多個職責耦合在一起了。

2.開放-關閉原則ocp(open-closed principle)

所謂開放-閉合原則,指的是,乙個類應該對擴充套件開放,最修改關閉。一般也被簡稱開閉原則,開閉原則是設計中非常核心的乙個原則。

開閉原則要求的是,類的行為是可以擴充套件的,而且是在不修改已有**的情況下進行擴充套件,也不必改動已有的源**或者二進位制**。

實現開閉原則的關鍵就在於合理地抽象、分離出變化和不變化的部分,為變化的部分留下可擴充套件的方式,比如,鉤子方法或者是動態組合物件等。

這個原則看起來也很簡單。但事實上,乙個系統要全部做到遵守開閉原則,幾乎是不可能的,也沒這個必要。適度的抽象可以提高系統的靈活性,使其可擴充套件、可維護,但是過度的抽象,會大大的增加系統的複雜程度。應該在需要改變的地方應用開閉原則就可以了,而不用到處使用,從而陷入過度設計。

3.黎克特制代換原則(liskov substitution principle)

子型別(subtype)必須能夠替換它們的基(父)型別。(子類可以以父類的身份出現)。

比如,如果是父類是鳥,鳥會飛。企鵝

物件導向 設計模式

提到設計模式,不得不感謝gof gang of four,四人組 他們1995年出版的 設計模式 一書,第一次將設計模式提公升到理論高度,並將之規範化。書中一共總結了23種基本的設計模式。而這23中設計模式幾乎涵蓋了物件導向設計過程中所有問題的解決方案。書中提到的23種設計模式分別是 1.單例模式 ...

設計模式 物件導向

所謂的設計原則也好,設計模式也罷,無非是在物件導向的前提下產生的。而物件導向的前提是抽象,物件導向的三大特徵是封裝 繼承 多型。為了從本質上理解設計模式,下面我們分析一下這些概念之間的關係。請看下圖 物件導向思想的前提是抽象,從現實世界中抽象出一些物件或者類的共性之後封裝成類或者抽象類或者介面。這些...

物件導向設計模式

物件導向設計模式 設計模式 在實際的開發中,我們要想深入的了解物件導向思想,就必須熟悉前人總結的 物件導向的思想的設計原則 1.單一職責原則 高內聚,低耦合 每個類只有乙個職責,對外值能提供一種功能,而引起類變化的原因應該只有乙個。在設計模式中,所有的設計模式都遵循這一原則。所有設計模式都建立在這乙...