失效链接处理 |
Android 源码设计模式解析与实战 第2版 PDF 下载
转载自:https://download.csdn.net/download/hanmindi/10145958
本站整理下载:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/25102876.html
相关截图:
资料简介:
本书专门介绍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 |