面向對象的設計原則

在使用面向對象的思想進行系統設計時,前人共總結出了7條原則,它們分別是:單一職責原則、開閉原則、里氏替換原則、依賴注入原則、接口分離原則、迪米特原則和優先使用組合而不是繼承原則。編程

1.單一職責原則(SRP)設計模式

單一職責原則的核心思想就是:系統中的每個對象都應該只有一個單獨的職責,而全部對象所關注的就是自身職責的完成。它的英文縮寫是SRP,英文全稱是Single Responsibility Principle。設計

其實單一職責原則的意思就是開發人員常常說的「高內聚、低耦合」。也就是說,每一個類應該只有一個職責,對外只能提供一種功能,而引發類變化的緣由應該只有一個。在設計模式中,全部的設計模式都遵循這一原則。對象

2.開閉原則(OCP)繼承

開閉原則的核心思想就是:一個對象對擴展開放,對修改關閉。它的英文縮寫是OCP,英文全稱是Open for Extension,Closed for Modification。接口

其實開閉原則的意思就是:對類的改動是經過增長代碼進行的,而不是改動現有的代碼。也就是說,軟件開發人員一旦寫出了能夠運行的代碼,就不該該去改變它,而是要保證它能一直運行下去,如何才能作到這一點呢?這就須要藉助於抽象和多態,即把可能變化的內容抽象出來,從而使抽象的部分是相對穩定的,而具體的實現層則是能夠改變和擴展的。ip

3.里氏替換原則(LSP)ci

里氏替換原則的核心思想就是:在任何父類出現的地方均可以用它的子類來替代。它的英文縮寫是LSP,英文全稱是Liskov Substitution Principle。開發

其實里氏替換原則的意思就是:同一個繼承體系中的對象應該有共同的行爲特徵。里氏代換原則關注的是怎樣良好地使用繼承,也就是說不要濫用繼承,它是繼承複用的基石。it

4.依賴注入原則(DIP)

依賴注入原則的核心思想就是:要依賴於抽象,不要依賴於具體的實現。它的英文縮寫是DIP,英文全稱是Dependence Inversion Principle。

其實依賴注入原則的意思就是:在應用程序中,全部的類若是使用或依賴於其餘的類,則都應該依賴於這些其餘類的抽象類,而不是這些其餘類的具體實現類。抽象層次應該不依賴於具體的實現細節,這樣才能保證系統的可複用性和可維護性。爲了實現這一原則,就要求開發人員在編程時要針對接口編程,而不針對實現編程。

5.接口分離原則(ISP)

接口分離原則的核心思想就是:不該該強迫客戶程序依賴它們不須要使用的方法。它的英文縮寫是ISP,英文全稱是Interface Segregation Principle。

其實接口分離原則的意思就是:一個接口不須要提供太多的行爲,一個接口應該只提供一種對外的功能,不該該把全部的操做都封裝到一個接口當中。

6.迪米特原則(LOD)

迪米特原則的核心思想就是:一個對象應當對其餘對象儘量少的瞭解。它的英文縮寫是LOD,英文全稱是Law of Demeter。

其實迪米特原則的意思就是:下降各個對象之間的耦合,提升系統的可維護性。在模塊之間,應該只經過接口來通訊,而不理會模塊的內部工做原理,它可使各個模塊耦合程度降到最低,促進軟件的複用。

7.優先使用組合而不是繼承原則(CARP)

優先使用組合而不是繼承原則的核心思想就是:優先使用組合,而不是繼承。它的英文縮寫是CARP,英文全稱是Composite/Aggregate Reuse Principle。

其實優先使用組合而不是繼承原則的意思就是:在複用對象的時候,要優先考慮使用組合,而不是繼承,這是由於在使用繼承時,父類的任何改變均可能影響子類的行爲,而在使用組合時,是經過得到對其餘對象的引用而在運行時刻動態定義的,有助於保持每一個類的單一職責原則。

相關文章
相關標籤/搜索