設(shè)計(jì)模式(Design pattern)代表了最佳的實(shí)踐善茎,通常被有經(jīng)驗(yàn)的面向?qū)ο蟮能浖_發(fā)人員所采用。
設(shè)計(jì)模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案负拟。這些解決方案是眾多軟件開發(fā)人員經(jīng)過相當(dāng)長的一段時(shí)間的試驗(yàn)和錯誤總結(jié)出來的。
項(xiàng)目中合理地運(yùn)用設(shè)計(jì)模式可以完美地解決很多問題嚷闭,每種模式在現(xiàn)實(shí)中都有相應(yīng)的原理來與之對應(yīng),每種模式都描述了一個(gè)在我們周圍不斷重復(fù)發(fā)生的問題赖临,以及該問題的核心解決方案胞锰,這也是設(shè)計(jì)模式能被廣泛應(yīng)用的原因。
GOF
在 1994 年兢榨,由 Erich Gamma嗅榕、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名為《Design Patterns - Elements of Reusable Object-Oriented Software》(中文譯名:設(shè)計(jì)模式 - 可復(fù)用的面向?qū)ο筌浖兀?/strong>的書吵聪,該書首次提到了軟件開發(fā)中設(shè)計(jì)模式的概念凌那。該書提出了23種設(shè)計(jì)模式,并分成三大類:創(chuàng)建型模式(Creational Patterns)吟逝、結(jié)構(gòu)型模式(Structural Patterns)帽蝶、行為型模式(Behavioral Patterns)。
他們所提出的設(shè)計(jì)模式主要是基于以下的面向?qū)ο笤O(shè)計(jì)原則块攒。
- 對接口編程而不是對實(shí)現(xiàn)編程
- 優(yōu)先使用對象組合而不是繼承
創(chuàng)建型模式
主要用于處理對象的創(chuàng)建励稳,實(shí)例化對象。
創(chuàng)建型設(shè)計(jì)模式提供了一種在創(chuàng)建對象的同時(shí)隱藏創(chuàng)建邏輯的方式囱井,不再由我們直接實(shí)例化對象麦锯。
而是根據(jù)特定場景,由程序來確定創(chuàng)建對象的方式琅绅,從而保證更大的性能、更好的架構(gòu)優(yōu)勢鹅巍。
- 單例模式(Singleton)
- 建造者模式(Builder)
- 原型模式(Prototype)
- 簡單工廠模式(Simple Factory)(不在23設(shè)計(jì)模式之中)
- 工廠方法模式(Factory Method)
- 抽象工廠方法模式(Abstract Factory)
行為型模式
描述類或?qū)ο笤鯓舆M(jìn)行交互和職責(zé)分配千扶。
行為型設(shè)計(jì)模式特別關(guān)注對象之間的通信料祠,用于幫助系統(tǒng)間各對象的通信,以及如何控制復(fù)雜系統(tǒng)中流程澎羞。
- 策略模式(Strategy Pattern)
- 狀態(tài)模式(State Pattern)
- 責(zé)任鏈模式(Chain of Responsibility Pattern)
- 解釋器模式(Interpreter Pattern)
- 命令模式(Command Pattern)
- 觀察者模式(Observer Pattern)
- 備忘錄模式(Memento Pattern)
- 迭代器模式(Iterator Pattern)
- 模板方法模式(Template Pattern)
- 訪問者模式(Visitor Pattern)
- 中介者模式(Mediator Pattern)
- 空對象模式(Null Object Pattern)(不在23設(shè)計(jì)模式之中)
結(jié)構(gòu)型模式
處理類或?qū)ο箝g的組合髓绽。
結(jié)構(gòu)型設(shè)計(jì)模式關(guān)注類和對象的組合,用于幫助將多個(gè)對象組織成更大的結(jié)構(gòu)妆绞。
繼承的概念被用來組合接口和定義組合對象獲得新功能的方式顺呕。
- 代理模式(Proxy Pattern)
- 組合模式(Composite Pattern)
- 適配器模式(Adapter Pattern)
- 裝飾器模式(Decorator Pattern)
- 享元模式(Flyweight Pattern)
- 外觀模式(Facade Pattern)
- 橋接模式(Bridge Pattern)
- 過濾器模式(Filter、Criteria Pattern)(不在23設(shè)計(jì)模式之中)
具體設(shè)計(jì)模式的簡介括饶,待更新...