《JavaScript設(shè)計(jì)模式》共分六篇四十章,首先討論了幾種函數(shù)的編寫(xiě)方式,體會(huì)JavaScript在編程中的靈活性;然后講解了面向?qū)ο缶幊痰闹R(shí),其中討論了類的創(chuàng)建、數(shù)據(jù)的封裝以及類之間的繼承;最后探討了各種模式的技術(shù),如簡(jiǎn)單工廠模式,包括工廠方法模式、抽象工廠模式、建造者模式、原型模式、單例模式,以及外觀模式,包括適配器模式。本書(shū)還講解了幾種適配器、代理模式、裝飾者模式和MVC模式,討論了如何實(shí)現(xiàn)對(duì)數(shù)據(jù)、視圖、控制器的分離。在講解MVP模式時(shí),討論了如何解決數(shù)據(jù)與視圖之間的耦合,并實(shí)現(xiàn)了一個(gè)模板生成器;講解MVVM模式時(shí),討論了雙向綁定對(duì)MVC的模式演化。本書(shū)幾乎包含了關(guān)于JavaScript設(shè)計(jì)模式的全部知識(shí),是進(jìn)行JavaScript高效編程必備的學(xué)習(xí)手冊(cè)。
《JavaScript設(shè)計(jì)模式》適合JavaScript初學(xué)者、前端設(shè)計(jì)者、JavaScript程序員學(xué)習(xí),也可以作為大專院校相關(guān)專業(yè)師生的學(xué)習(xí)用書(shū),以及培訓(xùn)學(xué)校的教材。
專業(yè)講解全面Web前端設(shè)計(jì)模式書(shū)阿里巴巴、百度前端高級(jí)工程師鼎力推薦Web前端界以一種講故事方式講解每一種模式,讓每位讀者都能讀懂。書(shū)中案例都是實(shí)際工作中的真實(shí)案例,讓讀者身臨其境。全面涵蓋專門針對(duì)javascript的36個(gè)設(shè)計(jì)模式,幫助讀者盡快提高開(kāi)發(fā)效率深入剖析面向?qū)ο蟮脑O(shè)計(jì)原則及代碼重構(gòu),幫助讀者快速融入團(tuán)隊(duì)項(xiàng)目開(kāi)發(fā)中本書(shū)通過(guò)職場(chǎng)主人公“小銘”實(shí)戰(zhàn)歷練,介紹了他從菜鳥(niǎo)到高級(jí)程序員的蛻變過(guò)程,值得每一個(gè)程序員借鑒和學(xué)習(xí)!各種設(shè)計(jì)模式的原則和準(zhǔn)確定義、應(yīng)用方法實(shí)踐
張容銘百度資深高級(jí)web前端研發(fā)工程師,長(zhǎng)期工作在web前端一線上,現(xiàn)研發(fā)與維護(hù)百度圖片搜索業(yè)務(wù),曾主導(dǎo)百度新首頁(yè)項(xiàng)目改版等。 喜歡鋼琴,素描,而又常帶著他的單反各地旅行。
目錄
第一篇 面向?qū)ο缶幊?br />第1章 靈活的語(yǔ)言——JavaScript2
1.1 入職第一天2
1.2 函數(shù)的另一種形式2
1.3 用對(duì)象收編變量3
1.4 對(duì)象的另一種形式4
1.5 真假對(duì)象4
1.6 類也可以5
1.7 一個(gè)檢測(cè)類5
1.8 方法還可以這樣用6
1.9 函數(shù)的祖先7
1.10 可以鏈?zhǔn)教砑訂?
1.11 換一種方式使用方法9
下章劇透10
憶之獲10
我問(wèn)你答10
第2章 寫(xiě)的都是看到的——面向
對(duì)象編程11
2.1 兩種編程風(fēng)格——面向過(guò)程與
面向?qū)ο?1
2.2 包裝明星——封裝12
2.3 傳宗接代——繼承19
2.4 老師不止一位——多繼承27
2.5 多種調(diào)用方式——多態(tài)29
下章劇透30
憶之獲31
我問(wèn)你答31
第二篇 創(chuàng)建型設(shè)計(jì)模式
第3章 神奇的魔術(shù)師——簡(jiǎn)單工廠模式34
3.1 工作中的第一次需求34
3.2 如果類太多,那么提供一個(gè)35
3.3 一個(gè)對(duì)象有時(shí)也可代替許多類37
3.4 你的理解決定你選擇的方式38
下章劇透39
憶之獲39
我問(wèn)你答39
第4章 給我一張名片——工廠方法模式40
4.1 廣告展現(xiàn)40
4.2 方案的抉擇41
4.3 安全模式類42
4.4 安全的工廠方法43
下章劇透44
憶之獲44
我問(wèn)你答44
第5章 出現(xiàn)的都是幻覺(jué)——抽象
工廠模式45
5.1 帶頭模范——抽象類45
5.2 幽靈工廠——抽象工廠模式46
5.3 抽象與實(shí)現(xiàn)47
下章劇透49
憶之獲49
我問(wèn)你答49
第6章 分即是合——建造者模式50
6.1 發(fā)布簡(jiǎn)歷50
6.2 創(chuàng)建對(duì)象的另一種形式50
6.3 創(chuàng)建一位應(yīng)聘者52
下章劇透53
憶之獲53
我問(wèn)你答54
第7章 語(yǔ)言之魂——原型模式55
7.1 語(yǔ)言中的原型55
7.2 創(chuàng)建一個(gè)焦點(diǎn)圖55
7.3 最優(yōu)的解決方案56
7.4 原型的拓展58
7.5 原型繼承58
下章劇透59
憶之獲60
我問(wèn)你答60
第8章 一個(gè)人的寂寞——單例模式61
8.1 滑動(dòng)特效61
8.2 命名空間的管理員62
8.3 模塊分明63
8.4 創(chuàng)建一個(gè)小型代碼庫(kù)63
8.5 無(wú)法修改的靜態(tài)變量64
8.6 惰性單例65
下章劇透65
憶之獲66
我問(wèn)你答66
第三篇 結(jié)構(gòu)型設(shè)計(jì)模式
第9章 套餐服務(wù)——外觀模式68
9.1 添加一個(gè)點(diǎn)擊事件68
9.2 兼容方式69
9.3 除此之外70
9.4 小型代碼庫(kù)70
下章劇透71
憶之獲71
我問(wèn)你答72
第10章 水管彎彎——適配器模式73
10.1 引入jQuery73
10.2 生活中的適配器73
10.3 jQuery適配器74
10.4 適配異類框架74
10.5 參數(shù)適配器75
10.6 數(shù)據(jù)適配76
10.7 服務(wù)器端數(shù)據(jù)適配77
下章劇透77
憶之獲77
我問(wèn)你答78
第11章 牛郎織女——代理模式79
11.1 無(wú)法獲取圖片上傳模塊數(shù)據(jù)79
11.2 一切只因跨域79
11.3 站長(zhǎng)統(tǒng)計(jì)80
11.4 JSONP81
11.5 代理模板81
下章劇透83
憶之獲83
我問(wèn)你答84
第12章 房子裝修——裝飾者模式85
12.1 為輸入框的新需求85
12.2 裝飾已有的功能對(duì)象86
12.3 為輸入框添磚加瓦86
下章劇透87
憶之獲87
我問(wèn)你答88
第13章 城市間的公路——橋接模式89
13.1 添加事件交互89
13.2 提取共同點(diǎn)90
13.3 事件與業(yè)務(wù)邏輯之間的橋梁90
13.4 多元化對(duì)象91
下章劇透93
憶之獲93
我問(wèn)你答93
第14章 超值午餐——組合模式94
14.1 新聞模塊十萬(wàn)火急94
14.2 餐廳里的套餐業(yè)務(wù)95
14.3 每個(gè)成員要有祖先95
14.4 組合要有容器類96
14.5 創(chuàng)建一個(gè)新聞?lì)?7
14.6 把新聞模塊創(chuàng)建出來(lái)99
14.7 表單中的應(yīng)用100
下章劇透101
憶之獲101
我問(wèn)你答102
第15章 城市公交車——享元模式103
15.1 翻頁(yè)需求103
15.2 冗余的結(jié)構(gòu)104
15.3 享元對(duì)象104
15.4 實(shí)現(xiàn)需求105
15.5 享元?jiǎng)幼?06
下章劇透108
憶之獲108
我問(wèn)你答108
第四篇 行為型設(shè)計(jì)模式
第16章 照貓畫(huà)虎——模板方法模式110
16.1 提示框歸一化110
16.2 美味的蛋糕111
16.3 創(chuàng)建基本提示框111
16.4 模板的原型方法112
16.5 根據(jù)模板創(chuàng)建類113
16.6 繼承類也可作為模板類113
16.7 創(chuàng)建一個(gè)提示框114
16.8 創(chuàng)建多類導(dǎo)航114
16.9 創(chuàng)建導(dǎo)航更容易116
下章劇透116
憶之獲116
我問(wèn)你答117
第17章 通信衛(wèi)星——觀察者模式118
17.1 團(tuán)隊(duì)開(kāi)發(fā)的坎坷118
17.2 衛(wèi)星的故事118
17.3 創(chuàng)建一個(gè)觀察者119
17.4 拉出來(lái)溜溜121
17.5 使用前的思考121
17.6 大顯身手121
17.7 對(duì)象間解耦123
17.8 課堂演練124
下章劇透125
憶之獲125
我問(wèn)你答125
第18章 超級(jí)瑪麗——狀態(tài)模式126
18.1 最美圖片126
18.2 分支判斷的思考126
18.3 狀態(tài)對(duì)象的實(shí)現(xiàn)127
18.4 狀態(tài)對(duì)象演練127
18.5 超級(jí)瑪麗128
18.6 狀態(tài)的優(yōu)化129
18.7 兩種使用方式130
下章劇透131
憶之獲131
我問(wèn)你答131
第19章 活諸葛——策略模式132
19.1 商品促銷132
19.2 活諸葛132
19.3 策略對(duì)象133
19.4 諸葛奇謀133
19.5 緩沖函數(shù)134
19.6 表單驗(yàn)證134
19.7 算法拓展135
19.8 算法調(diào)用135
下章劇透136
憶之獲136
我問(wèn)你答137
第20章 有序車站——職責(zé)鏈模式138
20.1“半成品”需求138
20.2 分解需求139
20.3 第一站——請(qǐng)求模塊139
20.4 下一站——響應(yīng)數(shù)據(jù)適配模塊140
20.5 終點(diǎn)站——?jiǎng)?chuàng)建組件模塊141
20.6 站點(diǎn)檢測(cè)——單元測(cè)試141
20.7 方案確定142
下章劇透142
憶之獲143
我問(wèn)你答143
第21章 命令模式144
21.1 自由化創(chuàng)建視圖144
21.2 命令對(duì)象145
21.3 視圖創(chuàng)建145
21.4 視圖展示146
21.5 命令接口147
21.6 大功告成147
21.7 繪圖命令148
21.8 寫(xiě)一條命令150
下章劇透150
憶之獲151
我問(wèn)你答151
第22章 駐華大使——訪問(wèn)者模式152
22.1 設(shè)置樣式152
22.2 自?shī)首詷?lè)的IE152
22.3 訪問(wèn)操作元素153
22.4 事件自定義數(shù)據(jù)153
22.5 原生對(duì)象構(gòu)造器154
22.6 對(duì)象訪問(wèn)器154
22.7 操作類數(shù)組155
下章劇透156
憶之獲156
我問(wèn)你答156
第23章 媒婆——中介者模式157
23.1 導(dǎo)航設(shè)置層157
23.2 創(chuàng)建中介者對(duì)象158
23.3 試試看,可否一用159
23.4 攻克需求159
23.5 訂閱消息160
23.6 發(fā)布消息161
下章劇透162
憶之獲162
我問(wèn)你答162
第24章 做好筆錄——備忘錄模式163
24.1 新聞?wù)故?63
24.2 緩存數(shù)據(jù)164
24.3 新聞緩存器164
24.4 工作中的備忘錄166
下章劇透166
憶之獲166
我問(wèn)你答166
第25章 點(diǎn)鈔機(jī)——迭代器模式167
25.1 簡(jiǎn)化循環(huán)遍歷167
25.2 迭代器167
25.3 實(shí)現(xiàn)迭代器168
25.4 小試牛刀170
25.5 數(shù)組迭代器171
25.6 對(duì)象迭代器171
25.7 試用迭代器172
25.8 同步變量迭代器172
25.9 分支循環(huán)嵌套問(wèn)題174
25.10 解決方案176
下章劇透177
憶之獲177
我問(wèn)你答177
第26章 語(yǔ)言翻譯——解釋器模式178
26.1 統(tǒng)計(jì)元素路徑178
26.2 描述文法179
26.3 解釋器179