在實際的開發中,我們要想更深入的了解面向對象思想,就必須熟悉前人總結過的面向對象思想的設計原則。
單一職責原則
核心思想:其實就是開發人員經常說的“高内聚”(自己能做的,不麻煩别人)。
也就是說:每個類應該隻有一個職責,對外隻能提供一種功能,而引起類變化的原因應該隻有一個。
在設計模式中,所有的設計模式都遵循這一原則。
開閉原則
核心思想:一個對象對擴充開放,對修改關閉。
其實開閉原則的意思就是:對類的改動是通過增加代碼進行的,而不是修改現有代碼。
也就是說:軟體開發人員一旦寫出了可以運作的代碼,就不應該去改動它,而是要保證它能一直運作下去,如何能夠做到這一點呢?
這就需要借助于抽象和多态,即把可能變化的内容抽象出來,進而使抽象的部分是相對穩定的,而具體的實作則是可以改變和擴充的。
裡氏替換原則
核心思想:在任何父類出現的地方都可以用它的子類來替代。
也就是說:同一個繼承體系中的對象應該有共同的行為特征。
依賴注入原則(Spring架構)
核心思想:要依賴于抽象,不要依賴于具體實作。
也就是說:在應用程式中,所有的類如果使用或依賴于其他的類,則應該依賴這些其他類的抽象類,而不是這些其他類的具體類。
為了實作這一原則,就要求我們在程式設計的時候針對抽象類或者接口程式設計,而不是針對具體實作程式設計。
接口分離原則
核心思想:不應該強迫程式依賴它們不需要使用的方法。
也就是說:一個接口不需要提供太多的行為,一個接口應該隻提供一種對外的功能,不應該把所有的操作都封裝到一個接口中。
迪米特原則
核心思想:一個對象應當對其他對象盡可能少的了解。“低耦合”(不要牽一發而動全身)
也就是說:降低各個對象之間的耦合,提高系統的可維護性。在子產品之間應該隻通過接口程式設計,而不理會子產品的内部工作原理,它可以使各個子產品耦合度降到最低,促進軟體的複用。
所有的原則都是為了提高程式的可維護性、可擴充性、可複用性。
我的GitHub位址:
https://github.com/heizemingjun我的部落格園位址:
http://www.cnblogs.com/chenmingjun我的螞蟻筆記部落格位址:
http://blog.leanote.com/chenmingjunCopyright ©2018 黑澤明軍
【轉載文章務必保留出處和署名,謝謝!】