鍍金池/ 教程/ HTML/ 簡介
中介者模式
MVVM
亨元模式
設(shè)計模式分類概覽表
ES Harmony
組合模式
CommonJS
jQuery 插件的設(shè)計模式
外觀模式
觀察者模式
建造者模式
構(gòu)造器模式
外觀模式
簡介
AMD
原型模式
設(shè)計模式的分類
觀察者模式
命名空間模式
代理模式
編寫設(shè)計模式
適配器模式
反模式
什么是設(shè)計模式
模塊化模式
MVC
Mixin 模式
裝飾模式
設(shè)計模式的結(jié)構(gòu)
單例模式
迭代器模式
命令模式
工廠模式
MVP
暴露模塊模式
惰性初始模式

簡介

寫出可維護(hù)的代碼的一個最重要的方面就是在代碼中能夠注意到重復(fù)出現(xiàn)的主題并對其進(jìn)行優(yōu)化。設(shè)計模式的知識領(lǐng)域是無價的。

在本書的第一部分,我們將探索那些真正可以應(yīng)用于任何編程語言的設(shè)計模式的歷史和重要性。如果你已經(jīng)熟悉這段歷史,可以直接跳過"什么是模式?"這一章繼續(xù)閱讀。

設(shè)計模式可以追溯到早期的一名叫Christopher Alexander的建筑師。他經(jīng)常會發(fā)表一些他在處理設(shè)計問題時的經(jīng)驗和如何與建筑和城鎮(zhèn)相聯(lián)系的。有一天,當(dāng)Alexander使用了一次又一次后,他發(fā)現(xiàn)某些設(shè)計結(jié)構(gòu)會導(dǎo)致做出的效果是最好的。

在Sara Ishikawa和Murray Silverstein的協(xié)作下,Alexander發(fā)明了一種可以幫助授權(quán)任何人去設(shè)計和構(gòu)建希望的任何規(guī)模的模式語言。這在1977年的一篇名為"A Pattern Language"的論文中發(fā)表,在后來作為一本完整的精裝書發(fā)表。

大約30年前,軟件工程師開始將Alexander曾寫過的原理并入第一版的設(shè)計模式,這是一個用來對那些想要改善他們編碼技巧的新手開發(fā)者的一個指南。要注意,這時設(shè)計模式背后的概念實際上已經(jīng)在編程行業(yè)成立以來就有了,雖然不是那么正式的形式。

第一個也是最標(biāo)志性的關(guān)于軟件工程的設(shè)計模式的正式作品是在1995年一本叫Design Patterns: Elements Of Reusable Object-Oriented Software的書中發(fā)表,這是Erich Gamma, Richard Helm, Ralph Johnson和 John Vlissides - 一群被稱為Gang of Four(簡稱GoF)的人寫的。

GoF的出版物被認(rèn)為是非常有助于推動設(shè)計模式的概念在我們的領(lǐng)域發(fā)展的,因為它描述了大量的開發(fā)技術(shù)和缺陷,而且還有在今天的世界中大量使用的23個核心的面向?qū)ο蟮脑O(shè)計模式。我們將詳細(xì)地在"設(shè)計模式分類"這一章中介紹這些模式。

在本書中,我們將看到一些流行的JavaScript設(shè)計模式,并探索為什么一些特定的模式比其他的更適合你的項目。但請記住模式不僅僅可以應(yīng)用在單純的JavaScript (例如:標(biāo)準(zhǔn)JavaScript代碼)里,也可以在一些像jQuery或dojo的抽象庫里使用。在我們開始之前,讓我們看看模式在軟件設(shè)計中的確切定義。