本書專門介紹Android源代碼的設計模式,主要講解面向對象的六大原則、主流的設計模式以及MVC和MVP模式。本書的主要內容為:優化代碼的步、開閉原則、里氏替換原則、依賴倒置原則、接口隔離原則、迪米特原則、單例模式、Builder模式、原型模式、工廠方法模式、抽象工廠模式、策略模式、狀態模式、責任鏈模式、解釋器模式、命令模式、觀察者模式、備忘錄模式、迭代器模式、模板方法模式、訪問者模式、中介者模式、模式、組合模式、適配器模式、裝飾模式、享元模式、外觀模式、橋接模式,以及MVC的介紹與實戰和MVP應用架構模式。每個章節都對某個模式做了深入分析,并且會對模式相關的技術點進行深入拓展,讓讀者在掌握模式的同時學習到Android中的一些重要知識,通過實戰幫助讀者達到學以致用的目的,且能夠將模式運用于項目中,開發出高質量的程序。 本書適合的讀者為初、中、高級Android工程師,也可以作為大專院校相關師生的學習用書和培訓學校的教材。
CSDN社區專家精心撰寫、業界專家鄧凡平、郭霖、任玉剛、徐宜生等鼎力推薦 業界第1本Android源碼講解設計模式的書 本書不僅分析了Android源代碼的設計模式,更結合實例演示了如何使用這些設計模式。看這本書,既能學到如何分析、學習Android源代碼,又能提高自己架構設計水平 書中的主人公小民就是那些不斷追求技術進步,從而得以不斷成長的IT技術人的代表,小民的成長過程基本上反映了我們現在程序員的成長經歷,他的成功很值得我們學習和借鑒。
旗下友盟的高級程序員,CSDN博客專家,在開源社區做了大量的工作,貢獻了許多模式設計的技術。
目錄
第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.2Double Check Lock (DCL)實現
單例27
2.6.3靜態內部類單例模式28
2.6.4枚舉單例29
2.6.5使用容器實現單例模式30
2.7Android源碼中的單例模式30
2.8無名英雄——深入理解LayoutInflater34
2.9運用單例模式41
2.10小結43
第3章自由擴展你的項目——
Builder模式44
3.1Builder模式介紹44
3.2Builder模式的定義44
3.3Builder模式的使用場景44
3.4Builder模式的UML類圖44
3.5Builder模式的簡單實現45
3.6Android源碼中的Builder模式實現47
3.7深入了解WindowManager53
3.8Builder模式實戰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.7Android源碼中的原型模式實現72
4.8Intent的查找與匹配74
4.8.1App信息表的構建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.6Android源碼中的工廠方法模式實現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.6Android源碼中的抽象工廠方法模式
實現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.6Android源碼中的策略模式實現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.6Wi-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.6Android源碼中的責任鏈模式實現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.6Android源碼中的解釋器模式實現193
10.7關于PackageManagerService199
10.8小結207
第11章讓程序暢通執行——命令模式208
11.1命令模式介紹208
11.2命令模式的定義208
11.3命令模式的使用場景208
11.4命令模式的UML類圖208
11.5命令模式的簡單實現211
11.6Android源碼中的命令模式實現215
11.7Android事件輸入系統介紹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.6Android源碼分析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.6Android源碼中的備忘錄模式254
13.7深度拓展261
13.7.1onSaveInstanceState調用的
時機261
13.7.2使用V4包存儲狀態的bug261
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.6Android源碼中的模式實現279
14.7小結281
第15章抓住問題核心——
模板方法模式282
15.1模板方法模式介紹282
15.2模板方法模式的定義282
15.3模板方法模式的使用場景282
15.4模板方法模式的UML類圖282
15.5模板方法模式的簡單示例283
15.6Android源碼中的模板方法模式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.6Android源碼中的模式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.6Android源碼中的中介者模式實現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.6Android源碼中的模式實現340
18.7Android中的Binder跨進程通信機制
與AIDL344
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.6Android源碼中的模式實現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.6Android源碼中的適配器模式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.6Android源碼中的模式實現413
21.7Context與ContextImpl415
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.6Android源碼中的享元模式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.6Android源碼中的外觀模式448
23.7深度拓展452
23.7.1Android資源的加載與匹配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.6Android源碼中的橋接模式實現475
24.7關于WindowManagerService476
24.8橋接模式實戰484
24.9小結487
第25章MVC的介紹與實戰488
25.1MVC的歷史與結構的演化488
25.2MVC的應用淺析494
25.3MVC在Android中的實現499
25.4MVC框架模式與設計模式503
第26章MVP應用架構模式504
26.1MVP模式介紹504
26.2MVP模式的三個角色505
26.3NavigationView中的MVP模式505
26.4MVP的實現513
26.5MVP與Activity、Fragment的生命
周期517
第27章MVVM應用淺析520
27.1MVVM模式介紹520
27.2MVVM的基本結構521
27.3View與ViewModel之間的交互522
27.4MVVM在Android中的應用與DataBinding使用淺析523
27.5MVVM的優缺點530
27.6MVC、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源代碼的設計模式,更結合實例演示了如何使用這些設計模式。看這本書,既能學到如何分析、學習Android源代碼,又能提高自己的架構設計水平,實在是一本難得的好書! 徐宜生 《Android群英傳》作者 這本書獨樹一幟,將設計模式和Android源碼中的設計思想融合到一起,我一定會認真閱讀這本書。 任玉剛(singwhatiwanna) 百度Android博學工程師,《Android開發藝術探索》作
剛沒上沒幾天就降價10元
能不能換個快遞,jing dong 快遞好得多。
公司圖書買的,看著還是不錯的
書很不錯,值得一看
進階必備,值得一看