發表於2024-11-23
專業講解全麵Web前端設計模式書
阿裏巴巴、百度前端高級工程師鼎力推薦
Web前端界以一種講故事方式講解每一種模式,讓每位讀者都能讀懂。
書中案例都是實際工作中的真實案例,讓讀者身臨其境。
全麵涵蓋專門針對JavaScript的36個設計模式,幫助讀者盡快提高開發效率
深入剖析麵嚮對象的設計原則及代碼重構,幫助讀者快速融入團隊項目開發中
《JavaScript設計模式》通過職場主人公“小銘”實戰曆練,介紹瞭他從菜鳥到高級程序員的蛻變過程,值得每一個程序員藉鑒和學習!
各種設計模式的原則和準確定義、應用方法實踐
《JavaScript設計模式》共分六篇四十章,首先討論瞭幾種函數的編寫方式,體會JavaScript在編程中的靈活性;然後講解瞭麵嚮對象編程的知識,其中討論瞭類的創建、數據的封裝以及類之間的繼承;最後探討瞭各種模式的技術,如簡單工廠模式,包括工廠方法模式、抽象工廠模式、建造者模式、原型模式、單例模式,以及外觀模式,包括適配器模式。本書還講解瞭幾種適配器、代理模式、裝飾者模式和MVC模式,討論瞭如何實現對數據、視圖、控製器的分離。在講解MVP模式時,討論瞭如何解決數據與視圖之間的耦閤,並實現瞭一個模闆生成器;講解MVVM模式時,討論瞭雙嚮綁定對MVC的模式演化。本書幾乎包含瞭關於JavaScript設計模式的全部知識,是進行JavaScript高效編程必備的學習手冊。
《JavaScript設計模式》適閤JavaScript初學者、前端設計者、JavaScript程序員學習,也可以作為大專院校相關專業師生的學習用書,以及培訓學校的教材。
張容銘,百度資深高級web前端研發工程師,長期工作在web前端一綫上,現研發與維護百度圖片搜索業務,曾主導百度新首頁項目改版等。喜歡鋼琴,素描,而又常帶著他的單反各地旅行。
★認識張容銘是在2012年年底的時候,那時張容銘來公司實習,大傢都覺得這小夥子實力不俗。而且很愛鑽研。在得知容銘利用業餘時間完成瞭本書的創作,作為他的朋友,真替他感到高興!短短幾年,進步如此迅速,在前端實戰開發方麵有著這麼多的積纍,有時也會讓我自愧不如。
在Web應用日益豐富的今天,越來越多的JavaScript被運用在我們的網頁中。隨著用戶體驗日益受到重視,前端的可維護性、前端性能對用戶體驗的影響開始備受關注,因此如何編寫高效的可維護的代碼,成為眾多互聯網公司爭相研究的對象。
本書通過對話的方式詳細地介紹瞭各種設計模式的原則和準確定義、應用方法和實踐,全方位比較各種同類模式之間的異同,詳細講解不同模式的使用方法。
“極具趣味,容易理解,但講解又極為嚴謹和透徹”是本書的寫作風格和最大特點。希望大傢在學到知識的同時,能夠感受到作者的風趣幽默。
最後,希望本書能夠幫助業界同仁打造齣更為卓越的Web産品。
——阿裏巴巴集團(淘寶) 高級Web前端研發工程師 王鵬飛
★在百度工作的時間裏,和張容銘共事過一段時光,在相處的過程中就發現張容銘對設計模式的研究和應用有很大的熱情,投入精力很多,且在應用上有很好的理解和收獲。本書可以說是張容銘多年來積纍的技術經驗的總結,涵蓋瞭絕大多數設計模式;敘述方麵采用新人與導師對話的方式,風趣幽默、通俗易懂,非常適閤JavaScript初學者和前段開發工程師學習。
——百度 高級前端研發工程師 楊坤
目錄
第一篇麵嚮對象編程
第1章靈活的語言——JavaScript2
1.1入職第一天2
1.2函數的另一種形式2
1.3用對象收編變量3
1.4對象的另一種形式4
1.5真假對象4
1.6類也可以5
1.7一個檢測類5
1.8方法還可以這樣用6
1.9函數的祖先7
1.10可以鏈式添加嗎8
1.11換一種方式使用方法9
下章劇透10
憶之獲10
我問你答10
第2章寫的都是看到的——麵嚮
對象編程11
2.1兩種編程風格——麵嚮過程與
麵嚮對象11
2.2包裝明星——封裝12
2.3傳宗接代——繼承19
2.4老師不止一位——多繼承27
2.5多種調用方式——多態29
下章劇透30
憶之獲31
我問你答31
第二篇創建型設計模式
第3章神奇的魔術師——簡單工廠模式34
3.1工作中的第一次需求34
3.2如果類太多,那麼提供一個35
3.3一個對象有時也可代替許多類37
3.4你的理解決定你選擇的方式38
下章劇透39
憶之獲39
我問你答39
第4章給我一張名片——工廠方法模式40
4.1廣告展現40
4.2方案的抉擇41
4.3安全模式類42
4.4安全的工廠方法43
下章劇透44
憶之獲44
我問你答44
第5章齣現的都是幻覺——抽象
工廠模式45
5.1帶頭模範——抽象類45
5.2幽靈工廠——抽象工廠模式46
5.3抽象與實現47
下章劇透49
憶之獲49
我問你答49
第6章分即是閤——建造者模式50
6.1發布簡曆50
6.2創建對象的另一種形式50
6.3創建一位應聘者52
下章劇透53
憶之獲53
我問你答54
第7章語言之魂——原型模式55
7.1語言中的原型55
7.2創建一個焦點圖55
7.3最優的解決方案56
7.4原型的拓展58
7.5原型繼承58
下章劇透59
憶之獲60
我問你答60
第8章一個人的寂寞——單例模式61
8.1滑動特效61
8.2命名空間的管理員62
8.3模塊分明63
8.4創建一個小型代碼庫63
8.5無法修改的靜態變量64
8.6惰性單例65
下章劇透65
憶之獲66
我問你答66
第三篇結構型設計模式
第9章套餐服務——外觀模式68
9.1添加一個點擊事件68
9.2兼容方式69
9.3除此之外70
9.4小型代碼庫70
下章劇透71
憶之獲71
我問你答72
第10章水管彎彎——適配器模式73
10.1引入jQuery73
10.2生活中的適配器73
10.3jQuery適配器74
10.4適配異類框架74
10.5參數適配器75
10.6數據適配76
10.7服務器端數據適配77
下章劇透77
憶之獲77
我問你答78
第11章牛郎織女——代理模式79
11.1無法獲取圖片上傳模塊數據79
11.2一切隻因跨域79
11.3站長統計80
11.4JSONP81
11.5代理模闆81
下章劇透83
憶之獲83
我問你答84
第12章房子裝修——裝飾者模式85
12.1為輸入框的新需求85
12.2裝飾已有的功能對象86
12.3為輸入框添磚加瓦86
下章劇透87
憶之獲87
我問你答88
第13章城市間的公路——橋接模式89
13.1添加事件交互89
13.2提取共同點90
13.3事件與業務邏輯之間的橋梁90
13.4多元化對象91
下章劇透93
憶之獲93
我問你答93
第14章超值午餐——組閤模式94
14.1新聞模塊十萬火急94
14.2餐廳裏的套餐業務95
14.3每個成員要有祖先95
14.4組閤要有容器類96
14.5創建一個新聞類97
14.6把新聞模塊創建齣來99
14.7錶單中的應用100
下章劇透101
憶之獲101
我問你答102
第15章城市公交車——享元模式103
15.1翻頁需求103
15.2冗餘的結構104
15.3享元對象104
15.4實現需求105
15.5享元動作106
下章劇透108
憶之獲108
我問你答108
第四篇行為型設計模式
第16章照貓畫虎——模闆方法模式110
16.1提示框歸一化110
16.2美味的蛋糕111
16.3創建基本提示框111
16.4模闆的原型方法112
16.5根據模闆創建類113
16.6繼承類也可作為模闆類113
16.7創建一個提示框114
16.8創建多類導航114
16.9創建導航更容易116
下章劇透116
憶之獲116
我問你答117
第17章通信衛星——觀察者模式118
17.1團隊開發的坎坷118
17.2衛星的故事118
17.3創建一個觀察者119
17.4拉齣來溜溜121
17.5使用前的思考121
17.6大顯身手121
17.7對象間解耦123
17.8課堂演練124
下章劇透125
憶之獲125
我問你答125
第18章超級瑪麗——狀態模式126
18.1最美圖片126
18.2分支判斷的思考126
18.3狀態對象的實現127
18.4狀態對象演練127
18.5超級瑪麗128
18.6狀態的優化129
18.7兩種使用方式130
下章劇透131
憶之獲131
我問你答131
第19章活諸葛——策略模式132
19.1商品促銷132
19.2活諸葛132
19.3策略對象133
19.4諸葛奇謀133
19.5緩衝函數134
19.6錶單驗證134
19.7算法拓展135
19.8算法調用135
下章劇透136
憶之獲136
我問你答137
第20章有序車站——職責鏈模式138
20.1“半成品”需求138
20.2分解需求139
20.3第一站——請求模塊139
20.4下一站——響應數據適配模塊140
20.5終點站——創建組件模塊141
20.6站點檢測——單元測試141
20.7方案確定142
下章劇透142
憶之獲143
我問你答143
第21章命令模式144
21.1自由化創建視圖144
21.2命令對象145
21.3視圖創建145
21.4視圖展示146
21.5命令接口147
21.6大功告成147
21.7繪圖命令148
21.8寫一條命令150
下章劇透150
憶之獲151
我問你答151
第22章駐華大使——訪問者模式152
22.1設置樣式152
22.2自娛自樂的IE152
22.3訪問操作元素153
22.4事件自定義數據153
22.5原生對象構造器154
22.6對象訪問器154
22.7操作類數組155
下章劇透156
憶之獲156
我問你答156
第23章媒婆——中介者模式157
23.1導航設置層157
23.2創建中介者對象158
23.3試試看,可否一用159
23.4攻剋需求159
23.5訂閱消息160
23.6發布消息161
下章劇透162
憶之獲162
我問你答162
第24章做好筆錄——備忘錄模式163
24.1新聞展示163
24.2緩存數據164
24.3新聞緩存器164
24.4工作中的備忘錄166
下章劇透166
憶之獲166
我問你答166
第25章點鈔機——迭代器模式167
25.1簡化循環遍曆167
25.2迭代器167
25.3實現迭代器168
25.4小試牛刀170
25.5數組迭代器171
25.6對象迭代器171
25.7試用迭代器172
25.8同步變量迭代器172
25.9分支循環嵌套問題174
25.10解決方案176
下章劇透177
憶之獲177
我問你答177
第26章語言翻譯——解釋器模式178
26.1統計元素路徑178
26.2描述文法179
26.3解釋器179
26.4同級兄弟元素遍曆180
26.5遍曆文檔樹180
26.6小試牛刀181
下章劇透182
憶之獲182
我問你答182
第五篇技巧型設計模式
第27章永無盡頭——鏈模式184
27.1深究jQuery184
27.2原型式繼承184
27.3找位助手185
27.4獲取元素185
27.5一個大問題186
27.6覆蓋獲取187
27.7方法丟失187
27.8對比jQuery188
27.9豐富元素獲取189
27.10數組與對象190
27.11方法拓展191
27.12添加方法192
27.13大功告成195
下章劇透196
憶之獲196
我問你答196
第28章未來預言傢——委托模式197
28.1點擊日曆交互197
28.2委托父元素197
28.3預言未來198
28.4內存外泄199
28.5數據分發200
下章劇透201
憶之獲201
我問你答201
第29章數據管理器——數據訪問
對象模式202
29.1用戶引導202
29.2數據訪問對象類203
29.3數據操作狀態203
29.4增添數據204
29.5查找數據205
29.6刪除數據206
29.7檢驗DAO207
29.8MongoDB208
29.9在nodejs中寫入配置項208
29.10連接MongoDB208
29.11操作集閤209
29.12插入操作209
29.13刪除操作210
29.14更新操作211
29.15查找操作211
29.16操作其他集閤212
下章劇透212
憶之獲212
我問你答213
第30章執行控製——節流模式214
30.1返迴頂部214
30.2節流器214
30.3優化浮層216
30.4創建浮層類216
30.5添加節流器217
30.6圖片的延遲加載218
30.7延遲加載圖片類218
30.8獲取容器內的圖片219
30.9加載圖片220
30.10篩選需加載的圖片220
30.11獲取縱坐標221
30.12節流器優化加載221
30.13大功告成222
30.14統計打包222
30.15組裝統計222
下章劇透224
憶之獲224
我問你答224
第31章卡片拼圖——簡單模闆模式225
31.1展示模闆225
31.2實現方案225
31.3創建文字列錶視圖226
31.4新方案227
31.5再次優化228
31.6模闆生成器228
31.7最佳方案229
下章劇透229
憶之獲230
我問你答230
第32章機器學習——惰性模式231
32.1對事件的思考231
32.2機器學習232
32.3加載即執行232
32.4惰性執行233
32.5創建XHR對象233
32.6第一種方案234
32.7第二種方案235
下章劇透235
憶之獲235
我問你答235
第33章異國戰場——參與者模式236
33.1傳遞數據236
33.2函數綁定237
33.3應用於事件238
33.4原生bind方法239
33.5函數柯裏化239
33.6重構bind240
33.7兼容版本241
下章劇透242
憶之獲242
我問你答243
第34章入場儀式——等待者模式244
34.1接口拆分244
34.2入場儀式244
34.3等待者對象245
34.4監控對象246
34.5完善接口方法247
34.6學以緻用248
34.7異步方法248
34.8結果如何249
34.9框架中的等待者250
34.10封裝異步請求250
34.11輪詢251
下章劇透251
憶之獲251
我問你答252
第六篇架構型設計模式
第35章死心眼——同步模塊模式254
35.1排隊開發254
35.2模塊化開發255
35.3模塊管理器與創建方法255
35.4創建模塊256
35.5模塊調用方法258
35.6調用模塊259
下章劇透259
憶之獲260
我問你答260
第36章大心髒——異步模塊模式261
36.1異步加載文件中的模塊261
36.2異步模塊262
36.3閉包環境262
36.4創建與調度模塊263
36.5加載模塊264
36.6設置模塊265
36.7學以緻用266
36.8實現交互267
JavaScript設計模式 下載 mobi pdf epub txt 電子書 格式 2024
JavaScript設計模式 下載 mobi epub pdf 電子書京東很不錯,一如既往的好,一次買瞭五十多本書
評分滿減購買,相當實惠,看完會對javascript有一個新的瞭解
評分太好瞭。
評分很不錯,包裝也給力,物流棒棒的。已經買瞭好多次瞭。
評分東東就是棒,物流快,質量好,其實我是來湊字數的。。。滿20字瞭嗎?。應該滿瞭吧
評分書本有塑料膜包裝,錶麵看非常nice,等我開啓啃書模式
評分生活是這樣子 不如詩
評分東西用的還不錯,便宜實惠
評分書的質量挺好
JavaScript設計模式 mobi epub pdf txt 電子書 格式下載 2024