設計模式:什么是設計模式

設計模式

什么是設計模式?

設計模式就是一套反復被使用的、為多數(shù)人知曉的、經過分類編目的、代碼設計經驗的總結。也就是在開發(fā)過程中約定俗成的代碼設計的規(guī)范和模板。
根據(jù)設計模式的參考書 Design Patterns - Elements of Reusable Object-Oriented Software(設計模式 - 可復用的面向對象軟件元素) 中所提到的,總共有 23 種設計模式。分為三大類:創(chuàng)建型模式(Creational Patterns)、結構型模式(Structural Patterns)、行為型模式(Behavioral Patterns)。

  • 創(chuàng)建型模式:
    這個類型的設計模式 在創(chuàng)建對象的同時隱藏創(chuàng)建邏輯的方式,而不是直接通過new去實例化對象。這樣程序在判斷針對某個給定實例需要創(chuàng)建哪些對象時更加靈活。
  • 主要包括下面五種具體的設計模式:
    工廠模式(Factory Pattern)、抽象工廠模式(Abstract Factory Pattern)、單例模式(Singleton Pattern)、建造者模式(Builder Pattern)和原型模式(Prototype Pattern)。
  • 結構型模式:
    這類設計模式關注類和對象的組合。
  • 主要包括下面七種具體的設計模式:
    適配器模式(Adapter Pattern)、橋接模式(Bridge 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)、狀態(tài)模式(State Pattern)、策略模式(Strategy Pattern)、模板模式(Template Pattern)和訪問者模式(Visitor Pattern)。

六大原則

  • 開閉原則(Open Close Principle): 對擴展開放,對修改關閉。實現(xiàn)熱插拔,提高擴展性。
  • 里氏代換原則(Liskov Substitution Principle): 實現(xiàn)抽象的規(guī)范,實現(xiàn)子父類互相替換;
  • 依賴倒轉原則(Dependence Inversion Principle): 針對接口編程,實現(xiàn)開閉原則的基礎;
  • 接口隔離原則(Interface Segregation Principle): 降低耦合度,接口單獨設計,互相隔離;
  • 迪米特法則,又稱最少知道原則(Demeter Principle): 功能模塊盡量獨立;
  • 合成復用原則(Composite Reuse Principle): 盡量使用合成/聚合的方式,而不是使用繼承。

為什么使用設計模式?

使用設計模式能夠保證代碼的可重用性,讓代碼更容易讓閱讀者理解,保證代碼的可靠性。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 參考資料:菜鳥教程之設計模式 設計模式概述 設計模式(Design pattern)代表了最佳的實踐,通常被有經驗...
    Steven1997閱讀 1,278評論 1 12
  • 設計模式匯總 一、基礎知識 1. 設計模式概述 定義:設計模式(Design Pattern)是一套被反復使用、多...
    MinoyJet閱讀 4,095評論 1 15
  • 設計模式是一套被反復使用、多數(shù)人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更...
    4ea0af17fd67閱讀 727評論 0 3
  • ?? 對設計模式的極簡說明!?? 這個話題可以輕易讓任何人糊涂。現(xiàn)在我嘗試通過用 最簡單 的方式說明它們,來讓你(和我...
    月球人simon閱讀 1,170評論 1 2
  • 設計模式(Design pattern)代表了最佳的實踐,通常被有經驗的面向對象的軟件開發(fā)人員所采用。設計模式是軟...
    Chars閱讀 710評論 2 5

友情鏈接更多精彩內容