一、何爲設計模式
設計模式不是一種方法和技術,而是一種思想。
設計模式(Design pattern)是一套被反覆使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。
設計模式和具體的語言無關,學習設計模式就是要建立面向對象的思想,儘可能的面向接口編程,低耦合,高內聚,使設計的程序可複用。學習設計模式能夠促進對面向對象思想的理解,反之亦然。它們相輔相成。
二、設計模式的用途
使用設計模式的目的:
爲了代碼可重用性、讓代碼更容易被他人理解、保證代碼可靠性。 設計模式使代碼編寫真正工程化;設計模式是軟件工程的基石脈絡,如同大廈的結構一樣。
三、六大設計原則
在實際的開發中,我們要想更深入的瞭解面向對象思想,就必須熟悉前人總結過的面向對象的思想的設計原則,以下六大設計原則也是學習23種設計模式的前提。
1、單一職責原則
其實就是開發人員經常說的”高內聚,低耦合”
也就是說,每個類應該只有一個職責,對外只能提供一種功能,而引起類變化的原因應該只有一個。在設計模式中,所有的設計模式都遵循這一原則。
2、開閉原則
核心思想是:一個對象對擴展開放,對修改關閉。
其實開閉原則的意思就是:對類的改動是通過增加代碼進行的,而不是修改現有代碼。
也就是說軟件開發人員一旦寫出了可以運行的代碼,就不應該去改動它,而是要保證它能一直運行下去,如何能夠做到這一點呢?這就需要藉助於抽象和多態,即把可能變化的內容抽象出來,從而使抽象的部分是相對穩定的,而具體的實現則是可以改變和擴展的。
3、里氏替換原則
核心思想:在任何父類出現的地方都可以用它的子類來替代。
其實就是說:同一個繼承體系中的對象應該有共同的行爲特徵。
4、依賴注入原則
核心思想:要依賴於抽象,不要依賴於具體實現。
其實就是說:在應用程序中,所有的類如果使用或依賴於其他的類,則應該依賴這些其他類的抽象類,而不是這些其他類的具體類。爲了實現這一原則,就要求我們在編程的時候針對抽象類或者接口編程,而不是針對具體實現編程。
5、接口分離原則
核心思想:不應該強迫程序依賴它們不需要使用的方法。
其實就是說:一個接口不需要提供太多的行爲,一個接口應該只提供一種對外的功能,不應該把所有的操作都封裝到一個接口中。
6、迪米特原則
核心思想:一個對象應當對其他對象儘可能少的瞭解。
其實就是說:降低各個對象之間的耦合,提高系統的可維護性。在模塊之間應該只通過接口編程,而不理會模塊的內部工作原理,它可以使各個模塊耦合度降到最低,促進軟件的複用。
四、三大設計模式類型
設計模式分三大類型
- 創建型模式 (對象的創建)5種:
工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式 - 結構型模式 (對象的組成(結構))7種:
適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式 - 行爲型模式 (對象的行爲)11種:
策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式
作者:韻呀
鏈接:https://www.jianshu.com/p/e800d37244aa
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。