《Android 源码设计模式解析与实战 第2版》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:何红辉,关爱民著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2017
  • ISBN:9787115452962
  • 页数:556 页
图书介绍:本书从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