設計模式之物件導向的基本原則

2021-10-18 16:10:26 字數 1273 閱讀 9484

實際開發中雖然很少用到設計模式,但還是需要學習一下。擴寬一下解決問題時的思路。

剛入行時公司老手推薦了一本書《大話設計模式》結合實際且通俗易懂。

今天先對物件導向的基礎做個總結

1、單一職責原則

就乙個類而言,應該僅有乙個引起它變化的原因(乙個類只負責一項職責)

乙個類如果承擔的職責過多,就等於把這些職責耦合在一起,變化放生時,會遭受意想不到的破壞。

2、裡式代換原則

子類必須能夠替換掉它們的父類

乙個軟體實體如果使用的是乙個父類的話,那麼一定適用於其子類,而且它察覺不出父類物件和子類物件的區別。也就是說,在軟體裡面,把父類都替換成它的子類,程式的行為沒有發生變化。

只有當子類可以替換掉父類,軟體單位的功能不受到影響,父類才能真正被復用,而子類也能夠在父類的基礎上增加新的行為。

3、依賴倒轉原則

抽象不應該依賴細節,細節應該依賴抽象。(針對介面程式設計,不要對實現程式設計,程式中所有的依賴關係都是終止與抽象類或者介面。)

高層模組不應該依賴低層模組。兩個都應該依賴抽象。(子類的可替換性才使得父類的模組在無需修改的情況下就可以擴充套件)

4、介面隔離原則

乙個類對另乙個類的依賴應該建立在最小的介面上。

為依賴介面的類定**務,只暴露給呼叫的類它需要的方法,它不需要的方法則隱藏起來。只有專注地為乙個模組提供定**務,才能建立最小的依賴關係。

提高內聚,減少對外互動。使介面用最少的方法去完成最多的事情。

5、迪公尺特法則

也叫最少知識原則

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

6、開放封閉原則

對於擴充套件是開放的,對於更改是封閉的

對程式中呈現出頻繁變化的那些部分進行抽象,面對需求,對程式的改動是通過增加新**進行的,而不是更改現有的**。

7、合成/聚合復用原則

盡量使用合成/聚合,盡量不要使用類繼承

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

優先使用物件的合成/聚合將有助於你保持每個類被封裝,並被集中在單個任務上。這樣類和類繼承層次回保持較小規模,並且不太可能增長為不可控制的龐然大物。

設計模式之物件導向七大基本原則

概述 在運用物件導向的思想進行軟體設計時,需要遵循的原則一共有7個,他們是 單一職責原則 single responsibility principle 每乙個類應該專注於做一件事情。黎克特制替換原則 liskov substitution principle 超類存在的地方,子類是可以替換的。依賴...

物件導向設計基本原則

物件導向設計不外乎遵循五大原則 第一 單一職責原則 即 乙個類應該只負責單一的職責,而將其餘的職責讓其他類來承擔,這樣每個類之間相互協調來完成一件任務。第二 開閉原則 即對擴充套件是開放的,對修改是封閉的,因此需要注重抽象的運用 第三 替換原則 子類應該可以替換在父類出現的任何地方 第四 依賴倒置原...

物件導向設計基本原則

物件導向設計不外乎遵循五大原則 第一 單一職責原則 即 乙個類應該只負責單一的職責,而將其餘的職責讓其他類來承擔,這樣每個類之間相互協調來完成一件任務。第二 開閉原則 即對擴充套件是開放的,對修改是封閉的,因此需要注重抽象的運用 第三 替換原則 子類應該可以替換在父類出現的任何地方 第四 依賴倒置原...