面向對象的五大基本原理


面向對象的五大基本原理

1.單一職責原則(SRP)

  • 類的功能要單一,不能包羅萬象,跟雜貨鋪似的。

  • 核心思想為:一個類,最好只做一件事,只有一個引起它的變化。

2.開放封閉原則(OCP)

  • 對象或實體應該對擴展開放,對修改封閉。

  • 更改封閉即是在我們對模塊進行擴展時,勿需對源有程序代碼和DLL進行修改或重新編譯文件!這個原則對我們在設計類的時候很有助,

  • 堅持這個原則就必須盡量考慮接口封裝,抽象機制和多態技術!

  • 核心思想是:軟件實體應該是可擴展的,而不可修改的。也就是,對擴展開放,對修改封閉。

  • 總結:“需求總是變化”沒有不變的軟件,所以就需要用封閉開放原則來封閉變化滿足需求,同時還能保持軟件內部的封裝體系穩定,不被

  • 需求的變化影響。

3.里氏替換原則(LSP)

  • 在對象 x 為類型 T 時 q(x) 成立,那么當 S 是 T 的子類時,對象 y 為類型 S 時 q(y) 也應成立。(即對父類的調用同樣適用於子類)

  • 核心思想是:子類對象能夠替換父類對象,而程序邏輯不變。

  • 總結:里氏替換原則能夠保證系統具有良好的拓展性,同時實現基於多態的抽象機制,能夠減少代碼冗余,避免運行期的類型判別

4.依賴倒置原則(DIP)

  • 高層次的模塊不應該依賴於低層次的模塊,他們都應該依賴於抽象。具體實現應該依賴於抽象,而不是抽象依賴於實現。

  • 我們不應該讓子類依賴於實體,不應該讓父類模塊依賴於子類模塊。所以我們需要將食草動物設計為抽象類,即抽象類或接口。這樣下層只需要實現相應的細節而不會影響父類。

  • 其核心思想是:依賴於抽象。

  • 將耦合緊密的兩個模塊進行分離接口和實現,主要依賴於接口編程。

  • 總結:依賴於抽象,就是對接口編程,不要對實現編程。

5.接口隔離原則(ISP)

  • 不應強迫客戶端實現一個它用不上的接口,或是說客戶端不應該被迫依賴它們不使用的方法,使用多個專門的接口比使用單個接口要好的多!

  • 核心思想是:使用多個小的專門的接口,而不要使用一個大的總接口。

  • 使用臃腫的接口,會造成實現類實現接口的所有方法,不管是它需要的還是不需要的,造成接口污染。

  • 接口污染是指把接口做的過於“胖”,派生類必須實現某些它用不到的功能,這樣不僅加大了接口間的耦合,而且帶來不必要的復雜性,造成接口污染。

  • 總結:遵守接口隔離原則,將“胖”接口拆分為獨立的幾個接口,各實現類分別與需要的接口類來建立依賴關系。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM