設計模式——代碼如若初相見

一、何爲設計模式

設計模式不是一種方法和技術,而是一種思想。

設計模式(Design pattern)是一套被反覆使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。

設計模式和具體的語言無關,學習設計模式就是要建立面向對象的思想,儘可能的面向接口編程,低耦合,高內聚,使設計的程序可複用。學習設計模式能夠促進對面向對象思想的理解,反之亦然。它們相輔相成。

二、設計模式的用途

使用設計模式的目的:
爲了代碼可重用性、讓代碼更容易被他人理解、保證代碼可靠性。 設計模式使代碼編寫真正工程化;設計模式是軟件工程的基石脈絡,如同大廈的結構一樣。

三、六大設計原則

在實際的開發中,我們要想更深入的瞭解面向對象思想,就必須熟悉前人總結過的面向對象的思想的設計原則,以下六大設計原則也是學習23種設計模式的前提。

1、單一職責原則

其實就是開發人員經常說的”高內聚,低耦合”
也就是說,每個類應該只有一個職責,對外只能提供一種功能,而引起類變化的原因應該只有一個。在設計模式中,所有的設計模式都遵循這一原則。

2、開閉原則

核心思想是:一個對象對擴展開放,對修改關閉。

其實開閉原則的意思就是:對類的改動是通過增加代碼進行的,而不是修改現有代碼。

也就是說軟件開發人員一旦寫出了可以運行的代碼,就不應該去改動它,而是要保證它能一直運行下去,如何能夠做到這一點呢?這就需要藉助於抽象和多態,即把可能變化的內容抽象出來,從而使抽象的部分是相對穩定的,而具體的實現則是可以改變和擴展的。

3、里氏替換原則

核心思想:在任何父類出現的地方都可以用它的子類來替代。

其實就是說:同一個繼承體系中的對象應該有共同的行爲特徵。

4、依賴注入原則

核心思想:要依賴於抽象,不要依賴於具體實現。

其實就是說:在應用程序中,所有的類如果使用或依賴於其他的類,則應該依賴這些其他類的抽象類,而不是這些其他類的具體類。爲了實現這一原則,就要求我們在編程的時候針對抽象類或者接口編程,而不是針對具體實現編程。

5、接口分離原則

核心思想:不應該強迫程序依賴它們不需要使用的方法。

其實就是說:一個接口不需要提供太多的行爲,一個接口應該只提供一種對外的功能,不應該把所有的操作都封裝到一個接口中。

6、迪米特原則

核心思想:一個對象應當對其他對象儘可能少的瞭解。

其實就是說:降低各個對象之間的耦合,提高系統的可維護性。在模塊之間應該只通過接口編程,而不理會模塊的內部工作原理,它可以使各個模塊耦合度降到最低,促進軟件的複用。

四、三大設計模式類型

設計模式分三大類型

  • 創建型模式 (對象的創建)5種:
    工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式
  • 結構型模式 (對象的組成(結構))7種:
    適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式
  • 行爲型模式 (對象的行爲)11種:
    策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式



作者:韻呀
鏈接:https://www.jianshu.com/p/e800d37244aa
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章