1. 程式人生 > >一天一個設計模式(一) - 總體概述

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

享元 關註 責任鏈 分布式 分享圖片 模板方法 mage upload 抽象工廠

前言

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


正文

1. 定義

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

2. 作用

  • 提高代碼復用率,降低開發成本和周期
  • 提高代碼可維護性、可拓展性
  • 使代碼更加優雅,可讀性更強
  • 讓代碼更容易被他人理解

3. 設計原則

在設計模式進行設計時需要遵循以下的面向對象設計原則:

技術分享圖片

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

4. 設計模式分類

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

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

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

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

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

技術分享圖片

總結

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


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

技術分享圖片

本帳號將持續分享後端技術幹貨,包括虛擬機基礎,多線程編程,高性能框架,異步、緩存和消息中間件,分布式和微服務,架構學習和進階等學習資料和文章。

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