一天一个设计模式(一) - 总体概述
前言
最近在對(duì)設(shè)計(jì)模式進(jìn)行了一系列總結(jié),本文將給大家關(guān)于設(shè)計(jì)模式的一個(gè)整體的介紹。
正文
1. 定義
設(shè)計(jì)模式是某類特定問題的代碼設(shè)計(jì)解決方案,是一套代碼設(shè)計(jì)的經(jīng)驗(yàn)總結(jié)。
2. 作用
- 提高代碼復(fù)用率,降低開發(fā)成本和周期
- 提高代碼可維護(hù)性、可拓展性
- 使代碼更加優(yōu)雅,可讀性更強(qiáng)
- 讓代碼更容易被他人理解
3. 設(shè)計(jì)原則
在設(shè)計(jì)模式進(jìn)行設(shè)計(jì)時(shí)需要遵循以下的面向?qū)ο笤O(shè)計(jì)原則:
- 單一職責(zé)原則 (SRP):就一個(gè)類而言,應(yīng)該僅有一個(gè)引起它變化的原因。
- 開閉原則 (ASD):類、模塊、函數(shù)等等應(yīng)該是可以拓展的,但是不可修改。
- 里氏替換原則 (LSP):所有引用基類(父類)的地方必須能透明地使用其子類的對(duì)象。
- 依賴倒置原則 (DIP):高層模塊不應(yīng)該依賴低層模塊,兩個(gè)都應(yīng)該依賴于抽象。抽象不應(yīng)該依賴于細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴于抽象。
- 迪米特原則 (LOD):一個(gè)軟件實(shí)體應(yīng)當(dāng)盡可能少地與其他實(shí)體發(fā)生相互作用。
- 接口隔離原則 (ISP):一個(gè)類對(duì)另一個(gè)類的依賴應(yīng)該建立在最小的接口上。
4. 設(shè)計(jì)模式分類
常用的23種設(shè)計(jì)模式總體來說分為三大類:創(chuàng)建型模式、結(jié)構(gòu)型模式 和 行為型模式。
創(chuàng)建型模式 (共五種):工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結(jié)構(gòu)型模式 (共七種):適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
行為型模式 (共十一種):策略模式、模板方法模式、觀察者模式、迭代子模式、責(zé)任鏈模式、命令模式、備忘錄模式、狀態(tài)模式、訪問者模式、中介者模式、解釋器模式。
三大類設(shè)計(jì)模式及其分類,如下圖所示:
總結(jié)
本文對(duì)設(shè)計(jì)模式的定義進(jìn)行了大致總體的介紹,接下來我會(huì)對(duì)幾種常用的設(shè)計(jì)模式進(jìn)行詳細(xì)的分析。
歡迎關(guān)注技術(shù)公眾號(hào): 零壹技術(shù)棧
本帳號(hào)將持續(xù)分享后端技術(shù)干貨,包括虛擬機(jī)基礎(chǔ),多線程編程,高性能框架,異步、緩存和消息中間件,分布式和微服務(wù),架構(gòu)學(xué)習(xí)和進(jìn)階等學(xué)習(xí)資料和文章。
總結(jié)
以上是生活随笔為你收集整理的一天一个设计模式(一) - 总体概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【干货】浅谈分布式数据库中间件之分库分表
- 下一篇: MVC防止CSRF攻击