Android源碼設計模式解析與實戰 Android源码设计模式解析与实战

何紅輝, 關愛民

無法訂購

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

相關主題

商品描述

 

<內容簡介>

本書專門介紹Android源代碼的設計模式,共26章,主要講解面向對象的六大原則、主流的設計模式以及MVC和MVP模式。主要內容為:優化代碼的首步、開閉原則、裏氏替換原則、依賴倒置原則、接口隔離原則、迪米特原則、單例模式、Builder模式、原型模式、工廠方法模式、抽象工廠模式、策略模式、狀態模式、責任鏈模式、解釋器模式、命令模式、觀察者模式、備忘錄模式、疊代器模式、模板方法模式、訪問者模式、中介者模式、代理模式、組合模式、適配器模式、裝飾模式、享元模式、外觀模式、橋接模式,以及MVC的介紹與實戰和MVP應用架構模式。每個章節都對某個模式做了深入的分析,並且會對模式相關的技術點進行深入拓展,讓讀者在掌握模式的同時學習到Android中的一些重要知識,通過實戰幫助讀者達到學以致用的目的,且能夠將模式運用於項目中,開發出高質量的程序。
本書適合的讀者為初、中、高級Android工程師,也可以作為大專院校相關師生的學習用書和培訓學校的教材。

 

<章節目錄>

第1章 走向靈活軟件之路——面向對象的六大原則1
1.1 優化代碼的第一步——單一職責原則1
1.2 讓程序更穩定、更靈活——開閉原則5
1.3 構建擴展性更好的系統——裏氏替換原則12
1.4 讓項目擁有變化的能力——依賴倒置原則13
1.5 系統有更高的靈活性——接口隔離原則16
1.6 更好的可擴展性——迪米特原則18
1.7 總結22
第2章 應用最廣的模式——單例模式23
2.1 單例模式介紹23
2.2 單例模式的定義23
2.3 單例模式的使用場景23
2.4 單例模式UML類圖23
2.5 單例模式的簡單示例24
2.6 單例模式的其他實現方式26
2.6.1 懶漢模式26
2.6.2 Double CheckLock ( DCL )實現單例26
2.6.3 靜態內部類單例模式27
2.6.4 枚舉單例28
2.6.5 使用容器實現單例模式28
2.7 Android源碼中的單例模式29
2.8 無名英雄——深入理解LayoutInflater33
2.9 運用單例模式40
2.10 總結42
第3章 自由擴展你的項目——Builder模式43
3.1 Builder模式介紹43
3.2 Builder模式的定義43
3.3 Builder模式的使用場景43
3.4 Builder模式的UML類圖43
3.5 Builder模式的簡單實現44
3.6 Android源碼中的Builder模式實現46
3.7 深入瞭解WindowManager 52
3.8 Builder模式實戰59
3.9 總結64
第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 總結116
第7章 時勢造英雄——策略模式117
7.1 策略模式介紹117
7.2 策略模式的定義117
7.3 策略模式的使用場景117
7.4 策略模式的UML類圖118
7.5 策略模式的簡單實現118
7.6 Android源碼中的策略模式實現123
7.6.1 時間插值器123
7.6.2 動畫中的時間插值器124
7.7 深入屬性動畫128
7.7.1 屬性動畫體系的總體設計128
7.7.2 屬性動畫的核心類介紹128
7.7.3 基本使用129
7.7.4 流程圖130
7.7.5 詳細設計131
7.7.6 核心原理分析131
7.8 策略模式實戰應用142
7.9 總結144
第8章 隨遇而安——狀態模式145
8.1 狀態模式介紹145
8.2 狀態模式的定義145
8.3 狀態模式的使用場景145
8.4 狀態模式的UML類圖145
8.5 狀態模式的簡單示例146
8.6 Wi—Fi管理中的狀態模式150
8.7 狀態模式實戰159
8.8 總結164
第9章 使編程更有靈活性——責任鏈模式165
9.1 責任鏈模式介紹165
9.2 責任鏈模式的定義165
9.3 責任鏈模式的使用場景165
9.4 責任鏈模式的UML類圖165
9.5 責任鏈模式的簡單實現170
9.6 Android源碼中的責任鏈模式實現173
9.7 責任鏈模式實戰178
9.8 總結181
第10章 化繁為簡的翻譯機——解釋器模式182
10.1 解釋器模式介紹182
10.2 解釋器模式的定義182
10.3 解釋器模式的使用場景183
10.4 解釋器模式的UML類圖184
10.5 解釋器模式的簡單實現185
10.6 Android源碼中的解釋器模式實現189
10.7 關於PackageManagerService 195
10.8 總結203
第11章 讓程序暢通執行——命令模式204
11.1 命令模式介紹204
11.2 命令模式的定義204
11.3 命令模式的使用場景204
11.4 命令模式的UML類圖204
11.5 命令模式的簡單實現207
11.6 Android源碼中的命令模式實現211
11.7 Android事件輸入系統介紹214
11.8 命令模式實戰216
11.9 總結223
第12章 解決、解耦的鑰匙——觀察者模式224
12.1 觀察者模式介紹224
12.2 觀察者模式的定義224
12.3 觀察者模式的使用場景224
12.4 觀察者模式的UML類圖224
12.5 觀察者模式的簡單實現225
12.6 Android源碼分析227
12.7 觀察者模式的深入拓展230
12.8 實戰238
12.9 總結245
第13章 編程中的“後悔藥”——備忘錄模式247
13.1 備忘錄模式介紹247
13.2 備忘錄模式的定義247
13.3 備忘錄模式的使用場景247
13.4 備忘錄模式的UML類圖247
13.5 備忘錄模式的簡單示例248
13.6 Android源碼中的備忘錄模式250
13.7 深度拓展257
13.7.1 onSaveInstanceState調用的時機257
13.7.2 使用V4包存儲狀態的bug257
13.8 實戰260
13.9 總結267
第14章 解決問題的“第三者”——疊代器模式268
14.1 疊代器模式介紹268
14.2 疊代器模式的定義268
14.3 疊代器模式的使用場景268
14.4 疊代器模式的UML類圖268
14.5 模式的簡單實現271
14.6 Android源碼中的模式實現275
14.7 總結277
第15章 抓住問題核心——模板方法模式278
15.1 模板方法模式介紹278
15.2 模板方法模式的定義278
15.3 模板方法模式的使用場景278
15.4 模板方法模式的UML類圖278
15.5 模板方法模式的簡單示例279
15.6 Android源碼中的模板方法模式281
15.7 深度拓展283
15.8 模板方法實戰296
15.9 總結299
第16章 訪問者模式301
16.1 訪問者模式介紹301
16.2 訪問者模式的定義301
16.3 訪問者模式的使用場景301
16.4 訪問者模式的UML類圖301
16.5 訪問者模式的簡單示例302
16.6 Android源碼中的模式306
16.7 訪問者模式實戰309
16.8 總結316
第17章 “和事佬”——中介者模式317
17.1 中介者模式介紹317
17.2 中介者模式的定義318
17.3 中介者模式的使用場景318
17.4 中介者模式的UML類圖318
17.5 中介者模式的簡單實現320
17.6 Android源碼中的中介者模式實現324
17.7 中介者模式實戰326
17.8 總結329
第18章 編程好幫手——代理模式330
18.1 代理模式介紹330
18.2 代理模式的定義330
18.3 代理模式的使用場景330
18.4 代理模式的UML類圖330
18.5 代理模式的簡單實現332
18.6 Android源碼中的代理模式實現336
18.7 Android中的Binder跨進程通信機制與AIDL
18.8 代理模式實戰
18.9 總結
第19章 物以類聚——組合模式
19.1 組合模式介紹
19.2 組合模式的定義
19.3 組合模式的使用場景
19.4 組合模式的UML類圖
19.5 組合模式的簡單實現
19.6 Android源碼中的模式實現
19.7 為什麽ViewGroup有容器的功能
19.8 總結
第20章 得心應手的“粘合劑”——適配器模式
20.1 適配器模式介紹
20.2 適配器模式的定義
20.3 適配器模式的使用場景
20.4 適配器模式的UML類圖
20.5 適配器模式應用的簡單示例
20.5.1 類適配器模式
20.5.2 對象適配器模式
20.6 Android源碼中的適配器模式
20.7 深度拓展
20.8 實戰演示
20.9 總結
第21章 裝飾模式
21.1 裝飾模式介紹
21.2 裝飾模式的定義
21.3 裝飾模式的使用場景
21.4 裝飾模式的UML類圖
21.5 模式的簡單實現
21.6 Android源碼中的模式實現
21.7 Context與ContextImpl
21.8 模式實戰
21.9 總結
第22章 對象共享,避免創建多對象——享元模式
22.1 享元模式介紹
22.2 享元模式定義
22.3 享元模式的使用場景
22.4 享元模式的UML類圖
22.5 享元模式的簡單示例
22.6 Android源碼中的享元模式
22.7 深度拓展
22.7.1 深入瞭解Android的消息機制
22.7.2 子線程中創建Handler為何會拋出異常
22.8 總結
第23章 統一編程接口——外觀模式
23.1 外觀模式介紹
23.2 外觀模式定義
23.3 外觀模式的使用場景
23.4 外觀模式的UML類圖
23.5 外觀模式的簡單示例
23.6 Android源碼中的外觀模式
23.7 深度拓展
23.7.1 Android資源的加載與匹配
23.7.2 動態加載框架的實現
23.8 外觀模式實戰
23.9 總結
第24章 連接兩地的交通樞鈕——橋接模式
24.1 橋接模式介紹
24.2 橋接模式的定義
24.3 橋接模式的使用場景
24.4 橋接模式的UML類圖
24.5 橋接模式的簡單實現
24.6 Android源碼中的橋接模式實現
24.7 關於WindowManagerService
24.8 橋接模式實戰
24.9 總結
第25章 MVC的介紹與實戰
25.1 MVC的起源與歷史
25.2 MVC在Android中的實現
25.3 總結
第26章 MVP應用架構模式
26.1 MVP模式介紹
26.2 MVP模式的三個角色
26.3 與MVC、MVVM的區別
26.4 MVP的實現
26.5 MVP與Activity、Fragment的生命周期