什么是設計模式


1.什么是設計模式

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

​ 使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。 毫無疑問,設計模式於己於他人於系統都是多贏的,使代碼編制真正工程化。

​ 設計模式是軟件工程的基石,如同大廈的一塊塊磚石一樣。項目中合理的運用設計模式可以完美的解決很多問題,每種模式在現在中都有相應的原理來與之對應,每一個模式描述了一個在我們周圍不斷重復 發生的問題,以及該問題的核心解決方案,這也是它能被廣泛應用的原因。

​ 1994年,有四位作者:Erich Gamma,Richard Helm,Ralph Johnson 和John Vlissides發表了一本題為《設計模式 - 可重用的面向對象 軟件元素》的圖書,該書在軟件開發中開創了設計模式的概念。這些 作者被統稱為四人幫(GOF)

  • 模式:在某些場景下,針對某類問題的某種通用的解決方案
  • 場景:項目所在的環境
  • 問題:約束條件,項目目標等
  • 解決方案:通用、可復用的設計,解決約束達到目標

2.設計模式六大原則

  1. 單一職責原則(Single Responsibility Principle, SRP):一個類只負責一個功能領域中的 相應職責,或者可以定義為:就一個類而言,應該只有一個引起它變化的原因。
  2. 開閉原則(Open-Closed Principle, OCP):一個軟件實體應當對擴展開放對修改關閉。 即軟件實體應盡量在不修改原有代碼的情況下進行擴展。
  3. 里氏代換原則(Liskov Substitution Principle, LSP):所有引用基類(父類)的地方必須 能透明地使用其子類的對象。里氏替換原則的主要作用就是規范繼承時子類的一些書寫 規則。其主要目的就是保持父類方法不被覆蓋。子類可以實現父類的抽象方法,但是不能覆蓋父類的非抽象方法、子類中可以增加自己特有的方法。
  4. 依賴倒轉原則(Dependency Inversion Principle, DIP):抽象不應該依賴於細節,細節 應當依賴於抽象。換言之,要針對接口編程,而不是針對實現編程。
  5. 接口隔離原則(Interface Segregation Principle, ISP):使用多個專門的接口,而不使用 單一的總接口,即客戶端不應該依賴那些它不需要的接口。
  6. 迪米特法則(Law of Demeter, LoD):一個軟件實體應當盡可能少地與其他實體發生相互作用。

3.設計模式三大分類

  • 創建型模式:對象實例化的模式,創建型模式用於解耦對象的實例化過程
  • 結構型模式:把類或對象結合在一起形成 一個更大的結構
  • 行為型模式:類和對象如何交互,及划分責任和算法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM