前言
最近在對設計模式進行了一系列總結,本文將給大家關於設計模式的一個整體的介紹。
正文
1. 定義
設計模式是某類特定問題的程式碼設計解決方案,是一套程式碼設計的經驗總結。
2. 作用
- 提高程式碼複用率,降低開發成本和週期
- 提高程式碼可維護性、可擴充性
- 使程式碼更加優雅,可讀性更強
- 讓程式碼更容易被他人理解
3. 設計原則
在設計模式進行設計時需要遵循以下的物件導向設計原則:
- 單一職責原則 (
SRP
):就一個類而言,應該僅有一個引起它變化的原因。 - 開閉原則 (
ASD
):類、模組、函式等等應該是可以擴充的,但是不可修改。 - 里氏替換原則 (
LSP
):所有引用基類(父類)的地方必須能透明地使用其子類的物件。 - 依賴倒置原則 (
DIP
):高層模組不應該依賴低層模組,兩個都應該依賴於抽象。抽象不應該依賴於細節,細節應該依賴於抽象。 - 迪米特原則 (
LOD
):一個軟體實體應當儘可能少地與其他實體發生相互作用。 - 介面隔離原則 (
ISP
):一個類對另一個類的依賴應該建立在最小的介面上。
4. 設計模式分類
常用的23
種設計模式總體來說分為三大類:建立型模式、結構型模式 和 行為型模式。
建立型模式 (共五種):工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結構型模式 (共七種):介面卡模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
行為型模式 (共十一種):策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、直譯器模式。
三大類設計模式及其分類,如下圖所示:
總結
本文對設計模式的定義進行了大致總體的介紹,接下來我會對幾種常用的設計模式進行詳細的分析。
歡迎關注技術公眾號: 零壹技術棧
本帳號將持續分享後端技術乾貨,包括虛擬機器基礎,多執行緒程式設計,高效能框架,非同步、快取和訊息中介軟體,分散式和微服務,架構學習和進階等學習資料和文章。