【設計模式】概念、原則及分類


設計模式有啥用

設計模式是一套被反復使用的、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。

設計模式已經經歷了很長一段時間的發展,它們提供了軟件開發過程中面臨的一般問題的最佳解決方案。學習這些模式有助于經驗不足的開發人員通過一種簡單快捷的方式來學習軟件設計。

總體思想是:高內聚、低耦合。


設計模式的原則:SOLID

簡稱 全稱 含義
SRP The Single Responsibility Principle 單一責任原則
OCP The Open Closed Principle 開放封閉原則
LSP The Liskov Substitution Principle 里氏替換原則
ISP The Interface Segregation Principle 接口分離原則
DIP The Dependency Inversion Principle 依賴倒置原則
  • 單一職責:一個類或對象只體現一類特征或只干一件事或一組相關的事;
  • 開放封閉:對擴展開放,對修改關閉。在程序需要進行擴展的時候,盡量不要去修改原有的代碼。
  • 里氏替換:任何基類可以出現的地方,子類一定可以出現。LSP 是繼承復用的基石,只有當派生類可以替換掉基類,且軟件單位的功能不受到影響時,基類才能真正被復用,而派生類也能夠在基類的基礎上增加新的行為。里氏代換原則是對開閉原則的補充。實現開閉原則的關鍵步驟就是抽象化,而基類與子類的繼承關系就是抽象化的具體實現,所以里氏代換原則是對實現抽象化的具體步驟的規范。
  • 接口分離:使用多個隔離的接口,而不是使用單個接口。
  • 依賴倒轉:面對接口編程,依賴于抽象而不依賴于具體。這是是開閉原則的基礎。
    還有另外兩個:
  • 迪米特法則,又稱最少知道原則(Demeter Principle):一個實體應當盡量少地與其他實體之間發生相互作用,使得系統功能模塊相對獨立。
  • 合成復用(Composite Reuse Principle):盡量使用合成/聚合的方式,而不是使用繼承。

設計模式的分類

創建型模式

這些設計模式提供了一種在創建對象的同時隱藏創建邏輯的方式,而不是使用 new 運算符直接實例化對象。這使得程序在判斷針對某個給定實例需要創建哪些對象時更加靈活。

  • 工廠模式(Factory Pattern)
  • 抽象工廠模式(Abstract Factory Pattern)
  • 單例模式(Singleton Pattern)
  • 建造者模式(Builder Pattern)
  • 原型模式(Prototype Pattern)
結構型模式

這些設計模式關注類和對象的組合。繼承的概念被用來組合接口和定義組合對象獲得新功能的方式。

  • 適配器模式(Adapter Pattern)
  • 橋接模式(Bridge Pattern)
  • 過濾器模式(Filter、Criteria Pattern)
  • 組合模式(Composite Pattern)
  • 裝飾器模式(Decorator Pattern)
  • 外觀模式(Facade Pattern)
  • 享元模式(Flyweight Pattern)
  • 代理模式(Proxy Pattern)
行為型模式

這些設計模式特別關注對象之間的通信。

  • 責任鏈模式(Chain of Responsibility Pattern)
  • 命令模式(Command Pattern)
  • 解釋器模式(Interpreter Pattern)
  • 迭代器模式(Iterator Pattern)
  • 中介者模式(Mediator Pattern)
  • 備忘錄模式(Memento Pattern)
  • 觀察者模式(Observer Pattern)
  • 狀態模式(State Pattern)
  • 空對象模式(Null Object Pattern)
  • 策略模式(Strategy Pattern)
  • 模板模式(Template Pattern)
  • 訪問者模式(Visitor Pattern)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 設計模式之六大原則(轉載) 關于設計模式的六大設計原則的資料網上很多...
    霄霄霄霄閱讀 911評論 0 1
  • 設計模式匯總 一、基礎知識 1. 設計模式概述 定義:設計模式(Design Pattern)是一套被反復使用、多...
    MinoyJet閱讀 3,978評論 1 15
  • 目錄: 設計模式六大原則(1):單一職責原則 設計模式六大原則(2):里氏替換原則 設計模式六大原則(3):依賴倒...
    加油小杜閱讀 739評論 0 1
  • 前言 設計模式六大原則網上資料比較多比較亂,本文將網上的一些好的資料做一下整理,以便隨時翻閱。友情提示,設計模式雖...
    簡單的土豆閱讀 1,452評論 0 10
  • 轉載標注聲明:http://www.uml.org.cn/sjms/201211023.asp 目錄:[設計模式六...
    Bloo_m閱讀 739評論 0 7