图书介绍
精通Swift设计模式2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- (美)ADAMFREEMAN著;丘远乐译 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115433480
- 出版时间:2016
- 标注页数:444页
- 文件大小:152MB
- 文件页数:456页
- 主题词:程序语言-程序设计
PDF下载
下载说明
精通Swift设计模式PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 准备工作2
第1章 设计模式2
1.1 将设计模式置于上下文中2
1.1.1 设计模式简介3
1.1.2 设计模式的结构3
1.1.3 量化设计模式4
1.1.4 问题出现之后使用设计模式4
1.1.5 设计模式的局限5
1.2 关于本书5
1.2.1 读者需要哪些知识背景5
1.2.2 读者需要哪些软件5
1.2.3 本书的结构6
1.2.4 获取示例代码6
1.3 总结6
第2章 熟悉Xcode的使用7
2.1 使用Xcode Playground7
2.1.1 创建Playground7
2.1.2 查看变量取值的历史记录9
2.1.3 使用取值时间轴11
2.1.4 在Playground中使用UI组件13
2.2 使用OSX命令行工具项目14
2.2.1 创建命令行工具项目14
2.2.2 Xcode的布局15
2.2.3 新建一个Swift文件16
2.3 总结19
第3章 开发SportsStore应用20
3.1 创建一个简单的iOS应用项目20
3.1.1 新建项目21
3.1.2 熟悉Xcode的布局22
3.1.3 定义数据23
3.2 构建简单的布局25
3.2.1 添加基本组件26
3.2.2 配置Auto Layout28
3.2.3 测试布局效果29
3.3 实现与显示库存总量的Label相关的代码30
3.3.1 创建引用30
3.3.2 更新界面显示31
3.4 实现table cell32
3.4.1 配置自定义table cell和布局32
3.4.2 配置table cell的布局约束34
3.4.3 创建table cell类和Outlet34
3.4.4 实现数据源协议36
3.4.5 注册数据源37
3.4.6 测试数据源38
3.5 处理编辑操作38
3.6 测试SportsStore应用41
3.7 总结42
第二部分 创建型模式44
第4章 对象模板模式44
4.1 准备示例项目44
4.2 此模式旨在解决的问题45
4.3 对象模板模式47
4.4 实现对象模板模式48
4.5 对象模板模式的优点49
4.5.1 解耦的好处49
4.5.2 封装的优点50
4.5.3 不断演化外部呈现的好处52
4.6 对象模板模式的陷阱54
4.7 Cocoa中使用对象模板模式的示例54
4.8 在SportsStore应用中使用对象模板模式54
4.8.1 准备示例应用54
4.8.2 创建Product类56
4.8.3 使用Product类58
4.8.4 扩展应用的总结信息60
4.9 总结61
第5章 原型模式62
5.1 此模式旨在解决的问题62
5.1.1 初始化过程开销大62
5.1.2 对模板的依赖64
5.2 原型模式65
5.3 实现原型模式65
5.3.1 克隆引用类型67
5.3.2 浅复制与深复制70
5.3.3 复制数组73
5.4 原型模式的优点75
5.4.1 避免内存开销大的初始化操作75
5.4.2 分离对象的创建与使用77
5.5 原型模式的陷阱83
5.5.1 陷阱一:深复制与浅复制83
5.5.2 陷阱二:扭曲代码结构83
5.5.3 陷阱三:不标准的协议83
5.6 Cocoa中使用原型模式的实例83
5.6.1 使用Cocoa数组84
5.6.2 使用NSCopying属性修饰符86
5.7 在SportsStore应用中使用原型模式87
5.7.1 准备示例应用87
5.7.2 在Product类中实现NSCopying协议87
5.7.3 创建Logger类88
5.7.4 在View Controller中输出修改日志89
5.7.5 测试修改91
5.8 总结91
第6章 单例模式92
6.1 准备示例项目92
6.2 此模式旨在解决的问题92
6.3 单例模式96
6.4 实现单例模式96
6.4.1 快速实现单例模式96
6.4.2 创建一个传统的单例实现98
6.4.3 处理并发100
6.5 单例模式的陷阱104
6.5.1 泄露缺陷104
6.5.2 代码文件共享带来的问题105
6.5.3 并发陷阱105
6.6 Cocoa中使用单例模式的实例106
6.7 在SportsStore应用中使用单例模式106
6.7.1 保护数据数组107
6.7.2 保护回调108
6.7.3 定义单例109
6.8 总结111
第7章 对象池模式112
7.1 准备示例项目112
7.2 此模式旨在解决的问题113
7.3 对象池模式113
7.4 实现对象池模式114
7.4.1 定义Pool类114
7.4.2 使用Pool类118
7.5 对象池模式的陷阱121
7.6 Cocoa中使用对象池模式的实例121
7.7 在SportsStore应用中使用对象池模式122
7.7.1 准备示例应用122
7.7.2 创建一个(伪)服务器122
7.7.3 创建对象池123
7.7.4 应用对象池模式124
7.8 总结127
第8章 对象池模式的变体128
8.1 准备示例项目128
8.2 对象池模式的变体128
8.2.1 对象创建策略129
8.2.2 对象复用策略132
8.2.3 空池策略136
8.2.4 对象分配策略146
8.3 对象池模式变体的陷阱148
8.3.1 期望与现实之间的差距149
8.3.2 过度利用与低利用率149
8.4 Cocoa中使用对象池模式变体的示例149
8.5 在SportsStore应用中使用对象池模式变体149
8.6 总结151
第9章 工厂方法模式152
9.1 准备示例项目152
9.2 此模式旨在解决的问题154
9.3 工厂方法模式156
9.4 实现工厂方法模式156
9.4.1 定义全局工厂方法157
9.4.2 使用基类158
9.5 工厂方法模式的变体162
9.6 工厂方法模式的陷阱164
9.7 Cocoa中使用工厂方法模式的示例164
9.8 在SportsStore应用中使用工厂方法模式164
9.8.1 准备示例应用164
9.8.2 实现工厂方法模式166
9.8.3 应用工厂方法模式167
9.9 总结168
第10章 抽象工厂模式169
10.1 准备示例项目169
10.2 此模式旨在解决的问题172
10.3 抽象工厂模式172
10.4 实现抽象工厂模式174
10.4.1 创建抽象工厂类174
10.4.2 创建具体工厂类174
10.4.3 完善抽象工厂类175
10.4.4 使用抽象工厂模式176
10.5 抽象工厂模式的变体177
10.5.1 隐藏抽象工厂类177
10.5.2 在具体工厂类中使用单例模式178
10.5.3 在实现类中使用原型模式180
10.6 抽象工厂模式的陷阱185
10.7 Cocoa中使用抽象工厂模式的示例185
10.8 在SportsStore应用中使用抽象工厂模式186
10.8.1 准备示例应用186
10.8.2 定义实现类和协议186
10.8.3 定义抽象与具体工厂类187
10.8.4 使用工厂与实现类188
10.9 总结189
第11章 建造者模式190
11.1 准备示例项目190
11.2 建造者模式194
11.3 实现建造者模式195
11.3.1 定义建造者类195
11.3.2 使用建造者类196
11.3.3 此模式的影响196
11.4 建造者模式的变体200
11.5 建造者模式的陷阱202
11.6 Cocoa中使用建造者模式的实例202
11.7 在SportsStore应用中使用建造者模式203
11.7.1 准备示例应用203
11.7.2 定义建造者类203
11.7.3 使用建造者类204
11.8 总结205
第三部分 结构型模式208
第12章 适配器模式208
12.1 准备示例项目208
12.1.1 创建数据源209
12.1.2 实现示例应用210
12.2 此模式旨在解决的问题211
12.3 适配器模式212
12.4 实现适配器模式213
12.5 适配器模式之变体215
12.5.1 定义一个适配器包装类215
12.5.2 创建一个双向适配器216
12.6 适配器模式的缺陷219
12.7 Cocoa中使用适配器模式的实例219
12.8 在SportsStore应用中使用适配器模式219
12.8.1 准备示例应用220
12.8.2 定义Adapter类220
12.8.3 使用适配功能221
12.9 总结222
第13章 桥接模式223
13.1 准备示例项目223
13.2 此模式旨在解决的问题225
13.3 桥接模式226
13.4 实现桥接模式228
13.4.1 实现信息部分228
13.4.2 实现通道部分229
13.4.3 创建桥接类229
13.4.4 增加信息类型与通道类型230
13.5 桥接模式的变体233
13.6 桥接模式的陷阱237
13.7 Cocoa中使用桥接模式的实例237
13.8 在SportsStore应用中使用此模式237
13.8.1 准备示例应用237
13.8.2 理解待解决的问题237
13.8.3 定义桥接类238
13.9 总结239
第14章 装饰器模式240
14.1 准备示例项目240
14.2 此模式旨在解决的问题242
14.3 装饰器模式244
14.4 实现装饰器模式244
14.5 装饰器模式的变体246
14.5.1 创建具有新功能的装饰器246
14.5.2 合并多个装饰器249
14.6 装饰器模式的陷阱251
14.7 Cocoa中使用装饰器模式的实例251
14.8 在示例项目中使用装饰器模式251
14.8.1 准备示例应用252
14.8.2 创建装饰器252
14.8.3 使用装饰器253
14.9 总结253
第15章 组合模式254
15.1 准备示例项目254
15.2 此模式旨在解决的问题256
15.3 组合模式257
15.4 实现组合模式257
15.5 组合模式的陷阱260
15.6 Cocoa中使用组合模式的实例261
15.7 在SportsStore应用中使用此模式261
15.7.1 准备示例应用261
15.7.2 定义组合类262
15.7.3 使用此模式263
15.8 总结264
第16章 外观模式265
16.1 准备示例项目265
16.2 此模式旨在解决的问题267
16.3 外观模式268
16.4 实现外观模式269
16.5 外观模式之变体270
16.6 外观模式的陷阱271
16.7 Cocoa中使用外观模式的实例272
16.8 在SportsStore应用中使用外观模式273
16.8.1 准备示例应用273
16.8.2 创建外观类274
16.8.3 使用外观类274
16.9 总结275
第17章 享元模式276
17.1 准备示例项目276
17.2 此模式旨在解决的问题278
17.3 享元模式278
17.4 实现享元模式279
17.4.1 创建Flyweight协议279
17.4.2 创建FlyweightImplementation类280
17.4.3 增加并发保护281
17.4.4 创建FlyweightFactory类282
17.4.5 应用享元模式284
17.5 享元模式之变体285
17.6 享元模式的陷阱286
17.6.1 陷阱一:重复的外部数据286
17.6.2 陷阱二:可变的外部数据287
17.6.3 陷阱三:并发访问287
17.6.4 陷阱四:过度优化287
17.6.5 陷阱五:误用287
17.7 Cocoa中使用享元模式的实例287
17.8 在SportsStore应用中使用享元模式288
17.8.1 准备示例应用289
17.8.2 创建Flyweight协议和实现类289
17.8.3 创建享元工厂289
17.8.4 应用享元模式290
17.9 总结290
第18章 代理模式291
18.1 准备示例项目291
18.2 此模式旨在解决的问题292
18.2.1 远程对象问题292
18.2.2 开销大的问题292
18.2.3 访问控制问题293
18.3 代理模式293
18.3.1 解决远程对象问题293
18.3.2 解决操作开销大的问题294
18.3.3 解决访问限制问题294
18.4 实现代理模式295
18.4.1 实现远程对象代理295
18.4.2 实现开销大的操作的代理297
18.4.3 实现访问限制代理299
18.5 代理模式之变体302
18.6 代理模式的陷阱305
18.7 Cocoa中使用代理模式的实例306
18.8 在SportsStore应用中使用代理模式306
18.8.1 准备示例应用306
18.8.2 定义协议、工厂方法和代理类306
18.8.3 更新ProductDataStore类307
18.8.4 发送库存更新308
18.9 总结310
第四部分 行为型模式312
第19章 责任链模式312
19.1 准备示例项目312
19.2 此模式旨在解决的问题314
19.3 责任链模式315
19.4 实现责任链模式315
19.4.1 创建并使用责任链317
19.4.2 使用责任链模式318
19.5 责任链模式之变体318
19.5.1 使用工厂方法模式318
19.5.2 责任链响应反馈319
19.5.3 通知责任链中的其他链321
19.6 此模式的陷阱323
19.7 Cocoa中使用责任链模式的实例323
19.8 在SportsStore应用中使用责任链模式323
19.8.1 准备示例应用323
19.8.2 定义责任链及其链323
19.9 总结325
第20章 命令模式326
20.1 准备示例项目326
20.2 此模式旨在解决的问题327
20.3 命令模式328
20.4 实现命令模式328
20.4.1 定义Command协议329
20.4.2 定义Command实现类329
20.4.3 使用命令模式330
20.4.4 添加并发保护332
20.4.5 使用撤销操作的功能333
20.5 命令模式之变体333
20.5.1 创建复合命令334
20.5.2 将命令当作宏来用335
20.5.3 将闭包作为命令337
20.6 命令模式的陷阱339
20.7 Cocoa中使用命令模式的实例339
20.8 在SportsStore应用中使用命令模式340
20.8.1 准备示例项目340
20.8.2 实观撤销功能340
20.9 总结343
第21章 中介者模式344
21.1 准备示例项目344
21.2 此模式旨在解决的问题346
21.3 中介者模式348
21.4 实现中介者模式348
21.4.1 定义Meditator类349
21.4.2 遵循Peer协议349
21.4.3 实现并发保护351
21.5 中介者模式之变体353
21.5.1 将更多的逻辑置于中介者中353
21.5.2 通用化中介者与其管理的对象之间的关系355
21.6 中介者模式的陷阱360
21.7 Cocoa中使用中介者模式的实例361
21.8 在SportsStore应用中使用中介者模式363
21.9 总结363
第22章 观察者模式364
22.1 准备示例项目364
22.2 此模式旨在解决的问题366
22.3 观察者模式366
22.4 实现观察者模式367
22.4.1 创建SubjectBase类368
22.4.2 遵循Subject协议369
22.4.3 遵循0bserver协议369
22.4.4 使用观察者模式370
22.5 观察者模式之变体371
22.5.1 通知的通用化371
22.5.2 使用弱引用375
22.5.3 处理生命周期较短的主题对象376
22.6 观察者模式的陷阱379
22.7 Cocoa中使用观察者模式的实例379
22.7.1 用户界面事件379
22.7.2 观察属性变化380
22.8 在SportsStore应用中使用此模式381
22.8.1 准备示例应用381
22.8.2 应用观察者模式381
22.9 总结383
第23章 备忘录模式384
23.1 准备示例项目384
23.2 此模式旨在解决的问题386
23.3 备忘录模式387
23.4 实现备忘录模式388
23.4.1 实现Memento类388
23.4.2 使用备忘录对象390
23.5 备忘录模式之变体390
23.6 备忘录模式的陷阱392
23.7 Cocoa中使用备忘录模式的实例393
23.8 在SportsStore中使用备忘录模式396
23.8.1 准备示例项目396
23.8.2 实现备忘录模式396
23.9 总结398
第24章 策略模式399
24.1 准备示例项目399
24.2 此模式旨在解决的问题400
24.3 策略模式401
24.4 实现策略模式402
24.4.1 定义策略和环境类402
24.4.2 使用策略模式403
24.5 策略模式之变体404
24.6 策略模式的陷阱405
24.7 Cocoa中使用策略模式的实例405
24.7.1 Cocoa框架中基于协议的策略405
24.7.2 Cocoa中基于选择器的策略406
24.8 在SportsStore应用中使用策略模式407
24.9 总结407
第25章 访问者模式408
25.1 准备示例项目408
25.2 此模式旨在解决的问题410
25.3 访问者模式412
25.4 实现访问者模式412
25.4.1 遵循Shape协议414
25.4.2 创建访问者416
25.4.3 使用访问者416
25.5 访问者模式之变体417
25.6 访问模式的陷阱417
25.7 Cocoa中使用访问者模式的实例417
25.8 在SportsStore应用中使用访问者模式417
25.9 总结417
第26章 模板方法模式418
26.1 准备示例项目418
26.2 此模式旨在解决的问题420
26.3 模板方法模式420
26.4 实现模板方法模式420
26.5 模板方法模式之变体422
26.6 模板方法模式的陷阱424
26.7 Cocoa中使用模板方法模式的实例424
26.8 在SportsStore应用中使用模板方法模式424
26.9 总结424
第五部分 MVC模式426
第27章 MVC模式426
27.1 准备示例项目426
27.2 此模式旨在解决的问题426
27.3 MVC模式426
27.4 实现MVC模式430
27.4.1 实现通用的代码431
27.4.2 定义一个框架432
27.4.3 创建模型433
27.4.4 实现视图435
27.4.5 定义控制器436
27.4.6 完善框架439
27.4.7 运行应用439
27.4.8 扩展应用440
27.5 MVC模式之变体444
27.6 MVC模式的陷阱444
27.7 Cocoa中使用MVC模式的实例444
27.8 总结444
热门推荐
- 3478574.html
- 2899358.html
- 1365860.html
- 531054.html
- 2863230.html
- 3755190.html
- 2708456.html
- 3521564.html
- 2405417.html
- 2700583.html
- http://www.ickdjs.cc/book_3863272.html
- http://www.ickdjs.cc/book_772742.html
- http://www.ickdjs.cc/book_3249903.html
- http://www.ickdjs.cc/book_3066199.html
- http://www.ickdjs.cc/book_319535.html
- http://www.ickdjs.cc/book_1822759.html
- http://www.ickdjs.cc/book_763550.html
- http://www.ickdjs.cc/book_2913109.html
- http://www.ickdjs.cc/book_460056.html
- http://www.ickdjs.cc/book_1215359.html