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

  • 购买积分:15 如何计算积分?
  • 作  者:何红辉,关爱民著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2015
  • ISBN:9787115406712
  • 页数:494 页
图书介绍:本书从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 Check Lock(DCL)实现单例 26

2.6.3 静态内部类单例模式 27

2.6.4 枚举单例 28

2.6.5 使用容器实现单例模式 28

2.7 Android源码中的单例模式 29

2.8 无名英雄——深入理解 LayoutInflater 33

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包存储状态的bug 257

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 340

18.8 代理模式实战 351

18.9 总结 355

第19章 物以类聚——组合模式 356

19.1 组合模式介绍 356

19.2 组合模式的定义 357

19.3 组合模式的使用场景 357

19.4 组合模式的UML类图 357

19.5 组合模式的简单实现 363

19.6 Android源码中的模式实现 367

19.7 为什么ViewGroup有容器的功能 368

19.8 总结 370

第20章 得心应手的“粘合剂”——适配器模式 371

20.1 适配器模式介绍 371

20.2 适配器模式的定义 371

20.3 适配器模式的使用场景 371

20.4 适配器模式的UML类图 371

20.5 适配器模式应用的简单示例 372

20.5.1 类适配器模式 372

20.5.2 对象适配器模式 373

20.6 Android源码中的适配器模式 375

20.7 深度拓展 380

20.8 实战演示 393

20.9 总结 402

第21章 装饰模式 403

21.1 装饰模式介绍 403

21.2 装饰模式的定义 403

21.3 装饰模式的使用场景 403

21.4 装饰模式的UML类图 403

21.5 模式的简单实现 406

21.6 Android源码中的模式实现 408

21.7 Context与ContextImpl 410

21.8 模式实战 419

21.9 总结 419

第22章 对象共享,避免创建多对象——享元模式 420

22.1 享元模式介绍 420

22.2 享元模式定义 420

22.3 享元模式的使用场景 420

22.4 享元模式的UML类图 420

22.5 享元模式的简单示例 421

22.6 Android源码中的享元模式 424

22.7 深度拓展 429

22.7.1 深入了解Android的消息机制 429

22.7.2 子线程中创建Handler为何会抛出异常 438

22.8 总结 439

第23章 统一编程接口——外观模式 440

23.1 外观模式介绍 440

23.2 外观模式定义 440

23.3 外观模式的使用场景 440

23.4 外观模式的UML类图 440

23.5 外观模式的简单示例 441

23.6 Android源码中的外观模式 443

23.7 深度拓展 448

23.7.1 Android资源的加载与匹配 448

23.7.2 动态加载框架的实现 455

23.8 外观模式实战 461

23.9 总结 464

第24章 连接两地的交通枢钮——桥接模式 465

24.1 桥接模式介绍 465

24.2 桥接模式的定义 465

24.3 桥接模式的使用场景 465

24.4 桥接模式的UML类图 465

24.5 桥接模式的简单实现 467

24.6 Android源码中的桥接模式实现 470

24.7 关于WindowManagerService 471

24.8 桥接模式实战 479

24.9 总结 482

第25章 MVC的介绍与实战 483

25.1 MVC的起源与历史 483

25.2 MVC在Android中的实现 484

25.3 总结 486

第26章 MVP应用架构模式 487

26.1 MVP模式介绍 487

26.2 MVP模式的三个角色 488

26.3 与MVC、MVVM的区别 488

26.4 MVP的实现 489

26.5 MVP与Activity、Fragment的生命周期 493