編輯推薦
CSDN社區專傢精心撰寫、業界專傢鄧凡平、郭霖、任玉剛、徐宜生等鼎力推薦 業界第1本Android源碼講解設計模式的書 本書不僅分析瞭Android源代碼的設計模式,更結閤實例演示瞭如何使用這些設計模式。看這本書,既能學到如何分析、學習Android源代碼,又能提高自己架構設計水平 書中的主人公小民就是那些不斷追求技術進步,從而得以不斷成長的IT技術人的代錶,小民的成長過程基本上反映瞭我們現在程序員的成長經曆,他的成功很值得我們學習和藉鑒。
內容簡介
本書專門介紹Android源代碼的設計模式,主要講解麵嚮對象的六大原則、主流的設計模式以及MVC和MVP模式。本書的主要內容為:優化代碼的第一步、開閉原則、裏氏替換原則、依賴倒置原則、接口隔離原則、迪米特原則、單例模式、Builder模式、原型模式、工廠方法模式、抽象工廠模式、策略模式、狀態模式、責任鏈模式、解釋器模式、命令模式、觀察者模式、備忘錄模式、迭代器模式、模闆方法模式、訪問者模式、中介者模式、代理模式、組閤模式、適配器模式、裝飾模式、享元模式、外觀模式、橋接模式,以及MVC的介紹與實戰和MVP應用架構模式。每個章節都對某個模式做瞭深入分析,並且會對模式相關的技術點進行深入拓展,讓讀者在掌握模式的同時學習到Android中的一些重要知識,通過實戰幫助讀者達到學以緻用的目的,且能夠將模式運用於項目中,開發齣高質量的程序。 本書適閤的讀者為初、中、高級Android工程師,也可以作為大專院校相關師生的學習用書和培訓學校的教材。
目錄
第1章 走嚮靈活軟件之路——
麵嚮對象的六大原則 1
1.1 優化代碼的第一步——單一職責原則 1
1.2 讓程序更穩定、更靈活——開閉原則 5
1.3 構建擴展性更好的係統——
裏氏替換原則 12
1.4 讓項目擁有變化的能力——
依賴倒置原則 14
1.5 係統有更高的靈活性——
接口隔離原則 16
1.6 更好的可擴展性——迪米特原則 19
1.7 小結 23
第2章 應用最廣的模式——單例模式 24
2.1 單例模式介紹 24
2.2 單例模式的定義 24
2.3 單例模式的使用場景 24
2.4 單例模式UML類圖 24
2.5 單例模式的簡單示例 25
2.6 單例模式的其他實現方式 27
2.6.1 懶漢模式 27
2.6.2 Double Check Lock (DCL)實現
單例 27
2.6.3 靜態內部類單例模式 28
2.6.4 枚舉單例 29
2.6.5 使用容器實現單例模式 30
2.7 Android源碼中的單例模式 30
2.8 無名英雄——深入理解LayoutInflater 34
2.9 運用單例模式 41
2.10 小結 43
第3章 自由擴展你的項目——
Builder模式 44
3.1 Builder模式介紹 44
3.2 Builder模式的定義 44
3.3 Builder模式的使用場景 44
3.4 Builder模式的UML類圖 44
3.5 Builder模式的簡單實現 45
3.6 Android源碼中的Builder模式實現 47
3.7 深入瞭解WindowManager 53
3.8 Builder模式實戰 60
3.9 小結 65
第4章 使程序運行更高效——原型模式 66
4.1 原型模式介紹 66
4.2 原型模式的定義 66
4.3 原型模式的使用場景 66
4.4 原型模式的UML類圖 66
4.5 原型模式的簡單實現 67
4.6 淺拷貝和深拷貝 69
4.7 Android源碼中的原型模式實現 72
4.8 Intent的查找與匹配 74
4.8.1 App信息錶的構建 74
4.8.2 精確匹配 80
4.9 原型模式實戰 83
4.10 小結 85
第5章 應用最廣泛的模式——
工廠方法模式 87
5.1 工廠方法模式介紹 87
5.2 工廠方法模式的定義 87
5.3 工廠方法模式的使用場景 87
5.4 工廠方法模式的UML類圖 87
5.5 模式的簡單實現 90
5.6 Android源碼中的工廠方法模式實現 93
5.7 關於onCreate方法 95
5.8 工廠方法模式實戰 102
5.9 小結 105
第6章 創建型設計模式——
抽象工廠模式 106
6.1 抽象工廠模式介紹 106
6.2 抽象工廠模式的定義 106
6.3 抽象工廠模式的使用場景 106
6.4 抽象工廠模式的UML類圖 106
6.5 抽象工廠方法模式的簡單實現 109
6.6 Android源碼中的抽象工廠方法模式
實現 112
6.7 抽象工廠模式在Android開發中的
應用 116
6.8 小結 120
第7章 時勢造英雄——策略模式 121
7.1 策略模式介紹 121
7.2 策略模式的定義 121
7.3 策略模式的使用場景 121
7.4 策略模式的UML類圖 122
7.5 策略模式的簡單實現 122
7.6 Android源碼中的策略模式實現 127
7.6.1 時間插值器 127
7.6.2 動畫中的時間插值器 128
7.7 深入屬性動畫 132
7.7.1 屬性動畫體係的總體設計 132
7.7.2 屬性動畫的核心類介紹 132
7.7.3 基本使用 133
7.7.4 流程圖 134
7.7.5 詳細設計 135
7.7.6 核心原理分析 135
7.8 策略模式實戰應用 146
7.9 小結 148
第8章 隨遇而安——狀態模式 149
8.1 狀態模式介紹 149
8.2 狀態模式的定義 149
8.3 狀態模式的使用場景 149
8.4 狀態模式的UML類圖 149
8.5 狀態模式的簡單示例 150
8.6 Wi-Fi管理中的狀態模式 154
8.7 狀態模式實戰 163
8.8 小結 168
第9章 使編程更有靈活性——
責任鏈模式 169
9.1 責任鏈模式介紹 169
9.2 責任鏈模式的定義 169
9.3 責任鏈模式的使用場景 169
9.4 責任鏈模式的UML類圖 169
9.5 責任鏈模式的簡單實現 174
9.6 Android源碼中的責任鏈模式實現 177
9.7 責任鏈模式實戰 182
9.8 小結 185
第10章 化繁為簡的翻譯機——
解釋器模式 186
10.1 解釋器模式介紹 186
10.2 解釋器模式的定義 186
10.3 解釋器模式的使用場景 187
10.4 解釋器模式的UML類圖 188
10.5 解釋器模式的簡單實現 189
10.6 Android源碼中的解釋器模式實現 193
10.7 關於PackageManagerService 199
10.8 小結 207
第11章 讓程序暢通執行——命令模式 208
11.1 命令模式介紹 208
11.2 命令模式的定義 208
11.3 命令模式的使用場景 208
11.4 命令模式的UML類圖 208
11.5 命令模式的簡單實現 211
11.6 Android源碼中的命令模式實現 215
11.7 Android事件輸入係統介紹 218
11.8 命令模式實戰 220
11.9 小結 227
第12章 解決解耦的鑰匙——
觀察者模式 228
12.1 觀察者模式介紹 228
12.2 觀察者模式的定義 228
12.3 觀察者模式的使用場景 228
12.4 觀察者模式的UML類圖 228
12.5 觀察者模式的簡單實現 229
12.6 Android源碼分析 231
12.7 觀察者模式的深入拓展 234
12.8 實戰 242
12.9 小結 249
第13章 編程中的“後悔藥”——
備忘錄模式 251
13.1 備忘錄模式介紹 251
13.2 備忘錄模式的定義 251
13.3 備忘錄模式的使用場景 251
13.4 備忘錄模式的UML類圖 251
13.5 備忘錄模式的簡單示例 252
13.6 Android源碼中的備忘錄模式 254
13.7 深度拓展 261
13.7.1 onSaveInstanceState調用的
時機 261
13.7.2 使用V4包存儲狀態的bug 261
13.8 實戰 264
13.9 小結 271
第14章 解決問題的“第三者”——
迭代器模式 272
14.1 迭代器模式介紹 272
14.2 迭代器模式的定義 272
14.3 迭代器模式的使用場景 272
14.4 迭代器模式的UML類圖 272
14.5 模式的簡單實現 275
14.6 Android源碼中的模式實現 279
14.7 小結 281
第15章 抓住問題核心——
模闆方法模式 282
15.1 模闆方法模式介紹 282
15.2 模闆方法模式的定義 282
15.3 模闆方法模式的使用場景 282
15.4 模闆方法模式的UML類圖 282
15.5 模闆方法模式的簡單示例 283
15.6 Android源碼中的模闆方法模式 285
15.7 深度拓展 287
15.8 模闆方法實戰 300
15.9 小結 303
第16章 訪問者模式 305
16.1 訪問者模式介紹 305
16.2 訪問者模式的定義 305
16.3 訪問者模式的使用場景 305
16.4 訪問者模式的UML類圖 305
16.5 訪問者模式的簡單示例 306
16.6 Android源碼中的模式 311
16.7 訪問者模式實戰 314
16.8 小結 320
第17章 “和事佬”——中介者模式 321
17.1 中介者模式介紹 321
17.2 中介者模式的定義 322
17.3 中介者模式的使用場景 322
17.4 中介者模式的UML類圖 322
17.5 中介者模式的簡單實現 324
17.6 Android源碼中的中介者模式實現 328
17.7 中介者模式實戰 330
17.8 小結 333
第18章 編程好幫手——代理模式 334
18.1 代理模式介紹 334
18.2 代理模式的定義 334
18.3 代理模式的使用場景 334
18.4 代理模式的UML類圖 334
18.5 代理模式的簡單實現 336
18.6 Android源碼中的代理模式實現 340
18.7 Android中的Binder跨進程通信機製
與AIDL 344
18.8 代理模式實戰 355
18.9 小結 359
第19章 物以類聚——組閤模式 360
19.1 組閤模式介紹 360
19.2 組閤模式的定義 361
19.3 組閤模式的使用場景 361
19.4 組閤模式的UML類圖 361
19.5 組閤模式的簡單實現 367
19.6 Android源碼中的模式實現 371
19.7 為什麼ViewGroup有容器的功能 372
19.8 小結 374
第20章 得心應手的“粘閤劑”——適配器
模式 375
20.1 適配器模式介紹 375
20.2 適配器模式的定義 375
20.3 適配器模式的使用場景 375
20.4 適配器模式的UML類圖 375
20.5 適配器模式應用的簡單示例 376
20.5.1 類適配器模式 376
20.5.2 對象適配器模式 377
20.6 Android源碼中的適配器模式 379
20.7 深度拓展 385
20.8 實戰演示 398
20.9 小結 407
第21章 裝飾模式 408
21.1 裝飾模式介紹 408
21.2 裝飾模式的定義 408
21.3 裝飾模式的使用場景 408
21.4 裝飾模式的UML類圖 408
21.5 模式的簡單實現 411
21.6 Android源碼中的模式實現 413
21.7 Context與ContextImpl 415
21.8 模式實戰 423
21.9 小結 424
第22章 對象共享,避免創建多對象——
享元模式 425
22.1 享元模式介紹 425
22.2 享元模式定義 425
22.3 享元模式的使用場景 425
22.4 享元模式的UML類圖 425
22.5 享元模式的簡單示例 426
22.6 Android源碼中的享元模式 429
22.7 深度拓展 434
22.7.1 深入瞭解Android的消息
機製 434
22.7.2 子綫程中創建Handler為何會拋齣異常 443
22.8 小結 444
第23章 統一編程接口——外觀模式 445
23.1 外觀模式介紹 445
23.2 外觀模式定義 445
23.3 外觀模式的使用場景 445
23.4 外觀模式的UML類圖 445
23.5 外觀模式的簡單示例 446
23.6 Android源碼中的外觀模式 448
23.7 深度拓展 452
23.7.1 Android資源的加載與匹配 452
23.7.2 動態加載框架的實現 459
23.8 外觀模式實戰 466
23.9 小結 468
第24章 連接兩地的交通樞鈕——
橋接模式 470
24.1 橋接模式介紹 470
24.2 橋接模式的定義 470
24.3 橋接模式的使用場景 470
24.4 橋接模式的UML類圖 470
24.5 橋接模式的簡單實現 472
24.6 Android源碼中的橋接模式實現 475
24.7 關於WindowManagerService 476
24.8 橋接模式實戰 484
24.9 小結 487
第25章 MVC的介紹與實戰 488
25.1 MVC的曆史與結構的演化 488
25.2 MVC的應用淺析 494
25.3 MVC在Android中的實現 499
25.4 MVC框架模式與設計模式 503
第26章 MVP應用架構模式 504
26.1 MVP模式介紹 504
26.2 MVP模式的三個角色 505
26.3 NavigationView中的MVP模式 505
26.4 MVP的實現 513
26.5 MVP與Activity、Fragment的生命
周期 517
第27章 MVVM應用淺析 520
27.1 MVVM模式介紹 520
27.2 MVVM的基本結構 521
27.3 View與ViewModel之間的交互 522
27.4 MVVM在Android中的應用與DataBinding使用淺析 523
27.5 MVVM的優缺點 530
27.6 MVC、MVP與MVVM的異同 530
27.7 小結 531
第28章 易混淆的設計模式 532
28.1 簡單工廠、工廠方法、抽象工廠、
Builder模式的區彆 532
28.2 代理與裝飾模式、橋接模式 538
28.3 外觀模式與中介模式 543
28.4 策略與狀態模式、命令模式 547
28.5 結束語 553
Android 源碼設計模式解析與實戰 第2版 下載 mobi epub pdf txt 電子書 格式