JavaScript設計模式 JavaScript设计模式

奧斯馬尼 (Addy Osmani)

買這商品的人也買了...

商品描述

<內容介紹>

設計模式是解決軟件設計中常見問題的可複用方案。學習任何編程語言,設計模式都是一個令人興奮和極具吸引力的話題。
  《JavaScript設計模式》是JavaScript設計模式的學習指南。全書分為14章。首先介紹了什麼是模式、模式的結構、類別、模式的分類、如何編寫模式等等;然後,集中介紹了很多流行的設計模式在JavaScript中的應用,包括Module(模塊)模式、Observer(觀察者)模式、Facade(外觀)模式和Mediator(中介者)模式;最後,還探討了模塊化的JavaScript模式、jQuery及其插件中的設計模式。
  《JavaScript設計模式》適合專業的Web開發人員和前端工程師閱讀。通過閱讀本書,他們將能夠提高對設計模式的認識,並學會如何將設計模式應用到JavaScript編程語言中。

<章節目錄>

第1章介紹1
第2章什麼是模式3
我們每天都在使用模式4
第3章模式狀態測試、Proto模式及三法則6
第4章設計模式的結構8
第5章編寫設計模式11
第6章反模式13
第7章設計模式類別15
第8章設計模式分類17
有關類(Class)的要點17
第9章JavaScript設計模式20
9.1Constructor(構造器)模式21
9.1.1對象創建21
9.1.2基本Constructor(構造器) 23
9.1.3帶原型的Constructor(構造器) 24
9.2Module(模塊)模式25
9.2.1對象字面量25
9.2.2Module(模塊)模式27
9.2.3Module模式變化31
9.3RevealingModule(揭示模塊)模式36
9.3.1優點38
9.3.2缺點38
9.4Singleton(單例)模式38
9.5Observer(觀察者)模式42
9.5.1Observer(觀察者)模式和Publish/Subscribe(發布/訂閱)模式的區別47
9.5.2優點49
9.5.3缺點49
9.5.4Publish/Subscribe實現49
9.6Mediator(中介者)模式59
9.6.1基本實現60
9.6.2高級實現61
9.6.3示例67
9.6.4優點和缺點68
9.6.5中介者(Mediator)與觀察者(Observer) 69
9.6.6中介者(Mediator)與外觀(Facade) 69
9.7Prototype(原型)模式70
9.8Command(命令)模式73
9.9Facade(外觀)模式75
有關抽象的要點78
9.10Factory(工廠)模式78
9.10.1何時使用Factory模式81
9.10.2何時不應使用Factory模式81
9.10.3AbstractFactory(抽象工廠) 81
9.11Mixin模式82
9.11.1子類化83
9.11.2Mixin(混入) 84
9.12Decorator(裝飾者)模式88
9.12.1偽經典Decorator(裝飾者) 91
9.12.2使用jQuery的裝飾者96
9.12.3優點和缺點97
9.13Flyweight(享元)模式98
9.13.1使用Flyweight模式98
9.13.2Flyweight和共享數據99
9.13.3實現經典Flyweight(享元) 99
9.13.4轉換代碼以使用Flyweight(享元)模式103
9.13.5基本工廠105
9.13.6管理外部狀態106
9.13.7Flyweight(享元)模式和DOM 107
第10章JavaScriptMV*模式112
10.1MVC 112
Smalltalk—80MVC 113
10.2為JavaScript開發人員提供的MVC 114
10.2.1Model(模型) 114
10.2.2View(視圖) 116
10.2.3Controller(控制器) 119
10.2.4Spine.js與Backbone.js 120
10.3MVC為我們提供了什麼122
10.4JavaScript中的Smalltalk—80MVC 122
10.4.1深入挖掘123
10.4.2總結123
10.5MVP 124
10.5 .1Model、View和Presenter 124
10.5.2MVP或MVC?125
10.5.3MVC、MVP和Backbone.js 126
10.6MVVM 128
10.6.1歷史129
10.6.2Model 129
10.6.3View 130
10.6.4ViewModel 133
10.6.5小結:View和ViewModel 135
10.6.6小結:ViewModel和Model 135
10.7利與弊135
10.7.1優點135
10.7.2缺點136
10.8使用更鬆散數據綁定的MVVM 136
10.9MVC、MVP與MVVM 141
10.10Backbone.js與KnockoutJS 142
第11章模塊化的JavaScript設計模式144
11.1腳本加載器要點145
11.2AMD 145
11.2.1模塊入門146
11.2.2使用Dojo的AMD模塊150
11.2.3AMD模塊設計模式(Dojo) 151
11.2.4使用jQuery的AMD模塊152
11.2.5AMD總結155
11.3CommonJS 155
11.3 .1入門指南156
11.3.2使用多個依賴157
11.3.3支持CommonJS的加載器和框架158
11.3.4CommonJS適用於瀏覽器嗎?158
11.3.5延伸閱讀159
11.4AMD和CommonJS:互相競爭,標準同效159
UMD:用於插件的AMD和CommonJS兼容模塊160
11.5ESHarmony 165
11.5.1具有Imports和Exports的模塊166
11.5.2從遠程數據源加載的模塊167
11.5.3模塊加載器API 167
11.5.4用於服務器的類CommonJS模塊168
11.5.5具有構造函數、getter和setter的類168
11.5.6ESHarmony總結169
11.5.7延伸閱讀170
11.6總結170
第12章jQuery中的設計模式171
12.1Composite(組合)模式171
12.2Adapter(適配器)模式173
12.3Facade(外觀)模式174
12.4Observer(觀察者)模式177
12.5Iterator(迭代器)模式180
12.6延遲初始化181
12.7Proxy(代理)模式183
12.8Builder(生成器)模式184
第13章jQuery插件設計模式187
13.1模式188
13.2LightweightStart模式189
延伸閱讀191
13.3完整的WidgetFactory模式191
延伸閱讀194
13.4嵌套命名空間插件模式194
延伸閱讀196
13.5自定義事件插件模式(使用WidgetFactory) 196
延伸閱讀198
13.6使用DOM—to—ObjectBridge模式的原型繼承198
延伸閱讀200
13.7jQuery UI Widget Factory Bridge模式200
延伸閱讀203
13.8使用WidgetFactory的jQuery Mobile Widget 203
13.9RequireJS和jQuery UI Widget Factory 206
13.9.1用法208
13.9.2延伸閱讀209
13.10全局選項和單次調用可重寫選項(最佳選項模式) 209
延伸閱讀211
13.11高可配和高可變的插件模式211
延伸閱讀213
13.12是什麼使插件超越模式213
13.12.1質量214
13.12.2代碼風格214
13.12.3兼容性214
13.12.4可靠性214
13.12.5性能214
13.12.6文檔215
13.12. 7維護的可能性215
13.13總結215
13.14命名空間模式215
13.15命名空間基礎216
13.15.1單一全局變量216
13.15.2命名空間前綴217
13.15.3對象字面量表示法217
13.15.4嵌套命名空間221
13.15.5立即調用的函數表達式(IIFE) 222
13.15.6命名空間註入224
13.16高級命名空間模式226
13.16.1自動嵌套的命名空間227
13.16.2依賴聲明模式229
13.16.3深度對象擴展229
13.16.4推薦232
第14章總結233
附錄參考文獻235