本书专门介绍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 快递好得多。
公司图书买的,看着还是不错的
书很不错,值得一看
进阶必备,值得一看