Objective-C编程之道:iOS设计模式解析
8推荐 收藏
19.8K阅读
图灵程序设计丛书

Objective-C编程之道:iOS设计模式解析

Carlo Chung (作者) 刘威 (译者)
本书讲述如何在代码中应用创建型模式、结构型模式和行为模式等,如何设计模式以巩固应用程序,并通过设计模式实例介绍MVC在Cocoa Touch中的工作方式。

本书适用于那些已经具备Objective-C基础、想进行高级iOS开发,利用设计模式来提高软件开发效率的iPhone或iPad专业开发人员。

收藏本书能做什么?

有情况的时候会收到通知,比如电子书发布等。

纸质书
¥46.61 ¥59.00

其他购买方式?

出版信息

  • 书  名Objective-C编程之道:iOS设计模式解析
  • 系列书名图灵程序设计丛书
  • 执行编辑关于本书的内容有任何问题,请联系 傅志红
  • 出版日期2011-11-11
  • 书  号978-7-115-26586-9
  • 定  价59.00 元
  • 页  数308
  • 开  本16开
  • 出版状态上市销售
  • 原书名Pro Objective-C Design Patterns for iOS
  • 原书号978-1430233305

同系列书

  • HTTP权威指南

    David Gourley   Brian Totty   Marjorie Sayer   Sailu Reddy   Anshu Aggarwal   陈涓   赵振平   译

    本书是HTTP及其相关核心Web技术方面的权威著作,主要介绍了Web应用程序是如何工作的,核心的因特网协议如何...

  • JavaScript高级程序设计(第3版)

    Nicholas C.Zakas   李松峰   曹力   译

    本书是JavaScript超级畅销书的新版。ECMAScript 5 和HTML5在标准之争中双双胜出,使大量...

  • 计算机科学的基础

    Al Aho   Jeff Ullman   傅尔也   译

    本书全面而详细地阐述了计算机科学的理论基础,从抽象概念的机械化到各种数据模型的建立,用算法、数据抽象等核心思想...

  • Java技术手册(第6版)

    Benjamin J Evans   David Flanagan   安道   译

    通过学习本书,你将能够: 掌握最新的语言细节,包括Java 8的变化 使用基本的Java句法学习面向对...

  • 机器学习实战

    Peter Harrington   李锐   李鹏   曲亚东   王斌   译

    机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或...

本书特色

解析iOS设计模式的开山之作
优化Objective-C编程实践的必修宝典
由此迈入移动开发高手行列

目录




第一部分 设计模式初体验

第1章 你好,设计模式 2

1.1 这是一本什么书 2

1.2 开始前的准备 2

1.3 预备知识 3

1.4 似曾相识的设计 3

1.5 设计模式的起源——模型、视图和
控制器 4

1.5.1 在模型对象中封装数据和基
本行为 4

1.5.2 使用视图对象向用户展示信息 5

1.5.3 用控制器对象联系起模型和
视图 5

1.5.4 作为复合设计模式的MVC 5

1.6 影响设计的几个问题 6

1.6.1 针对接口编程,而不是针对实现编程 7

1.6.2 @protocol与抽象基类 7

1.6.3 对象组合与类继承 8

1.7 本书用到的对象和类 9

1.7.1 类图 9

1.7.2 对象图 12

1.8 本书如何安排模式的讲解 13

1.9 总结 13

第2章 案例分析:设计一个应用程序 14

2.1 想法的概念化 14

2.2 界面外观的设计 15

2.3 架构设计 17

2.3.1 视图管理 18

2.3.2 如何表现涂鸦 20

2.3.3 如何表现保存的涂鸦图 24

2.3.4 用户操作 27

2.4 所用设计模式的回顾 32

2.5 总结 33

第二部分 对象创建

第3章 原型 36

3.1 何为原型模式 36

3.2 何时使用原型模式 37

3.3 浅复制与深复制 38

3.4 使用Cocoa Touch框架中的对象
复制 39

3.5 为Mark聚合体实现复制方法 39

3.6 将复制的Mark用作“图样模板” 47

3.7 总结 49

第4章 工厂方法 50

4.1 何为工厂方法模式 50

4.2 何时使用工厂方法 51

4.3 为何这是创建对象的安全方法 51

4.4 在TouchPainter中生成不同画布 51

4.5 在Cocoa Touch框架中应用工厂
方法 57

4.6 总结 58

第5章 抽象工厂 59

5.1 把抽象工厂应用到TouchPainter
应用程序 60

5.2 在Cocoa Touch框架中使用抽象
工厂 66

5.3 总结 68

第6章 生成器 69

6.1 何为生成器模式 69

6.2 何时使用生成器模式 70

6.3 构建追逐游戏中的角色 71

6.4 总结 79

第7章 单例 80

7.1 何为单例模式 80

7.2 何时使用单例模式 81

7.3 在Objective-C中实现单例模式 81

7.4 子类化Singleton 85

7.5 线程安全 85

7.6 在Cocoa Touch框架中使用单例
模式 86

7.6.1 使用UIApplication类 86

7.6.2 使用UIAccelerometer类 86

7.6.3 使用NSFileManager类 86

7.7 总结 87

第三部分 接口适配

第8章 适配器 90

8.1 何为适配器模式 90

8.2 何时使用适配器模式 92

8.3 委托 92

8.4 用Objective-C协议实现适配器模式 93

8.5 用Objective-C的块在iOS 4中实现
适配器模式 99

8.5.1 块引用的声明 99

8.5.2 块的创建 100

8.5.3 把块用作适配器 100

8.6 总结 104

第9章 桥接 105

9.1 何为桥接模式 105

9.2 何时使用桥接模式 106

9.3 创建iOS版虚拟仿真器 106

9.4 总结 112

第10章 外观 113

10.1 何为外观模式 113

10.2 何时使用外观模式 114

10.3 为子系统的一组接口提供简化的
接口 114

10.4 在TouchPainter应用程序中使用外
观模式 117

10.5 总结 119

第四部分 对象去耦

第11章 中介者 122

11.1 何为中介者模式 122

11.2 何时使用中介者模式 124

11.3 管理TouchPainter应用程序中的
视图迁移 124

11.3.1 修改迁移逻辑的困难 126

11.3.2 集中管理UI交通 127

11.3.3 在Interface Builder中使用CoordinatingController 132

11.4 总结 135

第12章 观察者 136

12.1 何为观察者模式 136

12.2 何时使用观察者模式 138

12.3 在模型-视图-控制器中使用观察
者模式 138

12.4 在Cocoa Touch框架中使用观察者
模式 138

12.4.1 通知 139

12.4.2 键-值观察 139

12.5 在TouchPainter中更新CanvasView
上的线条 140

12.6 总结 149

第五部分 抽象集合

第13章 组合 152

13.1 何为组合模式 152

13.2 何时使用组合模式 154

13.3 理解TouchPainter中Mark的使用 154

13.4 在Cocoa Touch框架中使用组合
模式 163

13.5 总结 164

第14章 迭代器 165

14.1 何为迭代器模式 165

14.2 何时使用迭代器模式 167

14.3 在Cocoa Touch框架中使用迭代器
模式 167

14.3.1 NSEnumerator 167

14.3.2 基于块的枚举 168

14.3.3 快速枚举 169

14.3.4 内部枚举 170

14.4 遍历Scribble的顶点 170

14.5 总结 178

第六部分 行为扩展

第15章 访问者 180

15.1 何为访问者模式 180

15.2 何时应用访问者模式 182

15.3 用访问者绘制TouchPainter中的
Mark 182

15.4 访问者的其他用途 189

15.5 能不能用范畴代替访问者模式 189

15.6 总结 189

第16章 装饰 190

16.1 何为装饰模式 190

16.2 何时使用装饰模式 191

16.3 改变对象的“外表”和“内容” 192

16.4 为UIImage创建图像滤镜 192

16.4.1 通过真正的子类实现装饰 193

16.4.2 通过范畴实现装饰 201

16.5 总结 206

第17章 责任链 207

17.1 何为责任链模式 207

17.2 何时使用责任链模式 208

17.3 在RPG游戏中使用责任链模式 209

17.4 总结 214

第七部分 算法封装

第18章 模板方法 216

18.1 何为模板方法模式 216

18.2 何时使用模板方法 217

18.3 利用模板方法制作三明治 217

18.4 保证模板方法正常工作 224

18.5 向模板方法增加额外的步骤 225

18.6 在Cocoa Touch框架中使用模板
方法 228

18.6.1 UIView类中的定制绘图 228

18.6.2 Cocoa Touch框架中的其他
模板方法实现 228

18.7 总结 229

第19章 策略 230

19.1 何为策略模式 230

19.2 何时使用策略模式 231

19.3 在UITextField中应用验证策略 231

19.4 总结 239

第20章 命令 240

20.1 何为命令模式 240

20.2 何时使用命令模式 241

20.3 在Cocoa Touch框架中使用命令
模式 241

20.3.1 NSInvocation对象 242

20.3.2 NSUndoManager 243

20.4 在TouchPainter中实现撤销与恢
复 243

20.4.1 使用NSUndoManager实
现绘图与撤销绘图 244

20.4.2 自制绘图与撤销绘图的
基础设施 248

20.4.3 允许用户触发撤销与恢复 255

20.5 命令还能做什么 256

20.6 总结 257

第八部分 性能与对象访问

第21章 享元 260

21.1 何为享元模式 260

21.2 何时使用享元模式 262

21.3 创建百花池 262

21.4 总结 269

第22章 代理 270

22.1 何为代理模式 270

22.2 何时使用代理模式 271

22.3 用虚拟代理懒加载图像 272

22.4 在Cocoa Touch框架中使用代理
模式 277

22.5 总结 279

第九部分 对象状态

第23章 备忘录 282

23.1 何为备忘录模式 282

23.2 何时使用备忘录模式 283

23.3 在TouchPainter中使用备忘录模式 284

23.3.1 涂鸦图的保存 284

23.3.2 涂鸦图的恢复 285

23.3.3 ScribbleMemento的
设计与实现 286

23.4 Cocoa Touch框架中的备忘录模式 295

23.5 总结 297







相关文章

  • 杨帆 10推荐

    钟冠贤:iOS开发之路(图灵访谈)

    图灵访谈之十一:专访钟冠贤 人物介绍:Carlo Chung 钟冠贤 目前在苹果公司担任iOS Lead Developer,在将创意转为软件实施、软件架构设计、在iPhone上实现人工智能/机械视觉,以及快速原型/概念证明方面有丰富经验,是iOS平台软件开发和自动化测试…...

  • 出版圈郭志敏 2推荐

    Objective-C——在Cocoa Touch框架中使用迭代器模式

    苹果公司用自己的命名规则“枚举器/枚举”改写了迭代器模式,用于相关基础类的各种方法。从现在开始,我将使用“枚举”一词,它就是苹果版本的“迭代”。在这个模式中它们是一个意思。基础框架中的NSEnumerator类实现了迭代器模式。抽象NSEnumerator类的私有具体子类返回枚…...

  • 出版圈郭志敏 1推荐

    Objective-C——遍历Scribble的顶点

    在第2章中讨论的TouchPainter应用程序中,有一个组合数据结构,容纳在屏幕上画线条用的所有触摸点。这一结构有个抽象类型叫Mark。Stroke对它进行了实现。第13章中对Mark及组合模式进行了详细讨论。Mark定义了包含单个点和由顶点组成的线条的“部分-整体”组合结构…...

  • C++中的设计模式理念可以套用在OC中么?
    Dante Von Alcatraz  发表于 2014-11-30 20:39:40
    推荐
    • 设计模式与语言无关

      Xwoder  发表于 2016-10-16 16:10:02
  • 何时能出电子版?
    fiigii  发表于 2013-09-13 15:16:47
    推荐
  • 翻译有严重错误, 把重写翻译成了重载. objective-c 根本没有重载的特性.
    HuangLibo  发表于 2018-05-08 02:06:15
    推荐
  • 啥时候出电子版,啥时候出电子版,啥时候出电子版 ...重要的事情说3遍
    张科  发表于 2018-09-08 20:10:14
    推荐
  • 完完全全就是机器翻译,这个翻译人员真是毫无职业道德
    annilq  发表于 2019-08-27 16:59:55
    推荐
  • operation明明应该是操作的意思,硬是翻译成手术,你tm对子类做手术?
    annilq  发表于 2019-08-27 17:01:00
    推荐