01 物件導向設計原則

2021-09-25 23:25:42 字數 905 閱讀 4454

1. 總則:開閉原則:

面向擴充套件開放,面向修改關閉

2. 單一職責原則

乙個類應該實現單一職責,否則將類拆開

3. 黎克特制替換原則

任何父類可以出現的地方,子類一定可以出現。子類盡量不要重寫和過載父類的方法(不是絕對,此原則與多型有一定的衝突,尋找乙個平衡點)

4. 依賴倒置

面向介面程式設計,依賴於抽象而不依賴於具體,寫**時用到具體類時,不與具體類進行互動,而具體類的上層接**互。

5. 介面隔離原則

每個介面中不存在子類用不到的卻必須實現的方法,如果不是,就要將介面拆分。

6. 迪公尺特法則(最少只知道原則)

乙個類對自己依賴的類知道的越少越好。也就是說不論被依賴的類多麼的複雜,都應該將邏輯封裝在方法內部,通過public方法提供給外部。這樣在被依賴的類被修改時,才能最小影響該類。

7. 合成復用原則

原則時盡量首先使用合成/聚合的方式,而不是使用繼承。(類與類的繼承關係屬於高耦合,子類很容易繼承父類有,但是不需要的屬性或者方法。若不是真的很合適,盡量不要使用。即降低耦合)

合成例子:

public

class

apublic

void

method()

}

public

class

bpublic

void

method()

}

在需要使用某類的方法時,在方法內建立乙個該類的物件,然後再呼叫方法,而不是繼承。以此來降低程式的耦合性。

提問:為了使用物件的某乙個方法,而去建立乙個物件會不會相較於繼承消耗更多的記憶體。

回答:並不會,因為繼承本身也是需要先建立乙個父類的物件,從這點上來看記憶體並不會有額外的消耗。

物件導向設計原則

oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...

物件導向設計原則

物件設計原則 物件導向設計原則 物件導向設計的基石是 開 閉 原則。開一閉 原則講的是 乙個軟體實體應當對擴充套件開放,對修改關閉。這個規則說的是,在設計乙個模組的時候,應當使這個模組可以在不被修改的前提下被擴充套件。從另外乙個角度講,就是所謂的 對可變性封裝原則 對可變性封裝原則 意味著兩點 1 ...

物件導向設計原則

oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...