一天一個設計模式(一) - 總體概述

零壹技術棧發表於2018-07-13

前言

最近在對設計模式進行了一系列總結,本文將給大家關於設計模式的一個整體的介紹。


正文

1. 定義

設計模式是某類特定問題的程式碼設計解決方案,是一套程式碼設計的經驗總結。

2. 作用

  • 提高程式碼複用率,降低開發成本和週期
  • 提高程式碼可維護性、可擴充性
  • 使程式碼更加優雅,可讀性更強
  • 讓程式碼更容易被他人理解

3. 設計原則

在設計模式進行設計時需要遵循以下的物件導向設計原則:

一天一個設計模式(一) - 總體概述

  • 單一職責原則 (SRP):就一個類而言,應該僅有一個引起它變化的原因。
  • 開閉原則 (ASD):類、模組、函式等等應該是可以擴充的,但是不可修改。
  • 里氏替換原則 (LSP):所有引用基類(父類)的地方必須能透明地使用其子類的物件。
  • 依賴倒置原則 (DIP):高層模組不應該依賴低層模組,兩個都應該依賴於抽象。抽象不應該依賴於細節,細節應該依賴於抽象。
  • 迪米特原則 (LOD):一個軟體實體應當儘可能少地與其他實體發生相互作用。
  • 介面隔離原則 (ISP):一個類對另一個類的依賴應該建立在最小的介面上。

4. 設計模式分類

常用的23設計模式總體來說分為三大類:建立型模式結構型模式行為型模式

建立型模式 (共五種):工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。

結構型模式 (共七種):介面卡模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。

行為型模式 (共十一種):策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、直譯器模式。

三大類設計模式及其分類,如下圖所示:

一天一個設計模式(一) - 總體概述

總結

本文對設計模式的定義進行了大致總體的介紹,接下來我會對幾種常用的設計模式進行詳細的分析。


歡迎關注技術公眾號: 零壹技術棧

image

本帳號將持續分享後端技術乾貨,包括虛擬機器基礎,多執行緒程式設計,高效能框架,非同步、快取和訊息中介軟體,分散式和微服務,架構學習和進階等學習資料和文章。

相關文章