面向對象設計的七大基本原則

#單一職責原則編程

定義:一個類只負責一個功能領域中的相應職責(就一個類而言,應該只有一個引發它變化的緣由)設計

是實現高內聚,低耦合的指導方針對象

 

#開閉原則繼承

定義:一個軟件實體應對擴展開放,對修改關閉。即軟件實體應儘可能在不修改原有代碼的狀況下進行擴展。接口

爲了知足開閉原則,須要對系統進行抽象化設計,抽象化是開閉原則的關鍵。基礎

 

#里氏代換原則變量

定義:全部引用基類的地方必須能透明地使用其子類的對象擴展

是實現開閉原則的重要方式之一軟件

 

#依賴倒轉原則數據類型

定義:抽象不該該依賴於細節,細節應當依賴於抽象。換言之,要針對接口編程,而不是針對實現編程。

依賴倒轉原則要求咱們在程序代碼中傳遞參數時或在關聯關係中,儘可能引用層次高的抽象層類。即便用接口和抽象類進行變量類型聲明,參數類型聲明,方法返回類型聲明,以及數據類型的轉換等,而不要用具體類來作這些事情。

 

在大多數狀況下,開閉,里氏代換,依賴倒轉三個原則會同事出現,開閉是目標,里氏代換是基礎,依賴倒轉是手段。

 

#接口隔離

當一個接口太大時,咱們須要將它分割成一些更細小的接口

將大接口中的方法根據其職責不一樣分別放在不一樣的小接口中,以確保每一個接口使用都很方便,並承擔某一個單一角色。

接口應該儘可能細化,同時接口中的方法應該儘可能少,每一個接口中只包含一個客戶端(如子模塊或業務邏輯類)所需的方法便可(定製服務)。

 接口也不能太少,會致使接口氾濫。

 

#合成複用

複用時要儘可能使用組合/聚合關係(關聯關係),少用繼承

組合可使系統更靈活,下降類與類的耦合度,一個類的變化對其餘類形成的影響相對較少。

使用繼承時,須要嚴格遵照里氏代換原則。

 

#迪米特法則(最少知道原則)

`不要和「陌生人」說話,只與直接朋友通訊`

引入一個合理的第三者,來下降現有對象的耦合度。

相關文章
相關標籤/搜索