书籍详情
Cocoa设计模式
作者:(美)布克,(美)雅克曼 著,陈宗斌,孔祥波 等译
出版社:机械工业出版社
出版时间:2010-10-01
ISBN:9787111317401
定价:¥59.00
购买这本书可以去
内容简介
《Cocoa设计模式》介绍了Cocoa框架中用到的面向对象的设计模式。Cocoa框架是Apple的面向对象开发环境,用来开发:Mac OS X的应用程序。主要的开发语言为Objective-C,它是Mac下进行开发必不可少的开发环境。《Cocoa设计模式》共分为5个部分,按照由浅入深、循序渐进的原则详细介绍各种设计模式在Cocoa中的应用,并且提供了丰富的代码示例,方便读者学习《Cocoa设计模式》内容。《Cocoa设计模式》最后还包含一个附录,提供了使用和理解Cocoa与设计模式的其他参考资料。《Cocoa设计模式》适合于正在使用或者考虑使用Mac OS x上的Apple Cocoa框架或者iPhone和iPod touch上的Cocoa Touch框架的读者阅读。《Cocoa设计模式》中的许多信息同样也适用于Linux和Windows上的开源项目GNUStep。另外,Objective. C、C语言、C++和Java程序员都可以从《Cocoa设计模式》中获益。
作者简介
Erik M. Buck于1993年成立EMB & Associates公司,并利用NeXT/Apple的软件技术逐渐成长为航空和娱乐软件领域的领导者,该技术已演变为苹果公司的Cocoa框架。他对Cocoa的邮件列表和技术论坛均有很多贡献,同时还参与编写了《Cocoa Programming》。Donald A.Yacktman自1991年已开始专门使用Cocoa及其前身技术OpenStep和NextStep。他参与编写了《Cocoa Programming》,是Stepwise网站的作者和编辑。目前他是一位独立的咨询师,协助C0coa和iPhone应用程序的设计和实施工作。
目录
译者序
序
前言
作者简介
第一部分 一种可控制一切的模式
第1章 模型-视图-控制器
1.1 Cocoa中的MVC
1.1.1 模型子系统的核心数据支持
1.1.2 视图子系统的应用程序工具箱支持
1.1.3 控制器子系统的应用程序工具箱支持
1.1.4 Cocoa的文本架构
1.1.5 Cocoa的文档架构
1.1.6 Cocoa编写脚本的能力
1.1.7 Cocoa的偏好窗格架构
1.1.8 Quart2Composei。的架构
1.1.9 QTKit的架构
1.2 小结
第2章分 析和应用MVC
2.1 非MVC设计
2.2 MVC设计
2.3 小结
第二部分 基础模式
第3章 两阶段创建
3.1 动机
3.2 解决方案
3.2.1 分区
3.2.2 初始化已分配的内存
3.2.3 实现指定的初始化方法
3.2.4 在初始化方法中使用分区
3.2.5 创建临时实例
3.3 Cocoa中的示例
3.4 后果
第4章 模板方法
4.1 动机
4.2 解决方案
4.2.1 默认模板方法
4.2.2 利用模板方法进行设计
4.3 Cocoa中的示例
4.3.1 使用-drawRect:模板方法
4.3.2 其他Cocoa模板方法
4.4 后果
第5章 动态创建
5.1 动机
5.2 解决方案
5.2.1 使用动态创建
5.2.2 用动态创建实现插件架构
5.3 Cocoa中的示例
5.4 后果
第6章 类别
6.1 动机
6.2 解决方案
6.2.1 非正式协议
6.2.2 匿名类别
6.2.3 代码组织
6.2.4 何时使用类别与子类化
6.3 Cocoa中的示例
6.3.1 把类别用于组织
6.3.2 把类别用于非IE式协议
6.3.3 把类别用于框架划分
6.4 后果
6.4.1 方法冲突
6.4.2 替换方法
6.4.3 软件维护
第7章 匿名类型和异类容器
7.1 动机
7.2 解决方案
7.2.1 匿名类型
7.2.2 赋值
7.2.3 异类容器
7.3 Cocoa中的示例
7.4 后果
第8章 枚举器
8.1 动机
8.2 解决方案
8.2.1 使用枚举器对象
8.2.2 使用快速枚举
8.2.3 创建自定义的枚举器
8.2.4 实现快速枚举
8.2.5 内部枚举
8.3 Cocoa中的示例
8.4 后果
第9章 执行选择器和延迟执行
9.1 动机
9.2 解决方案
9.2.1 延迟执行
9.2.2 Objective-C消息发送的实现
9.3 Cocoa中的示例
9.4 后果
第10章 访问器
10.1 动机
10.2 解决方案
10.2.1 引用计数的内存管理
10.2.2 管理保留计数的访问器
10.2.3 将内存管理限制在访问器中
10.2.4 可变性
10.2.5 NSKeyValueCoding
10.2.6 Interface Builder插座变量
10.2.7 Obiective-C2.0的属性
10.3 Cocoa中的示例
10.4 后果
第11章 归档和解档
11.1 动机
11.2 解决方案
11.3 Cocoa中的示例
11.3.1 实现NSCoding协议
11.3.2 编码和解码非对象类型
11.3.3 对象替换
11.3.4 nib意识
11.4 后果
第12章 复制
12.1 动机
12.2 解决方案
12.3 Cocoa中的示例
12.3.1 实现NSCopying
12.3.2 实现深复制
12.3.3 实现NSMutableCopying
12.3.4 必需的复制
12.3.5 复制Objective-C2.0的属性
12.3.6 避免使用NSCopyObject()
12.4 后果
第三部分 主要通过解耦来变得更强大的模式
第13章 单例
13.1 动机
13.2 解决方案
13.2.1 封装共享资源
13.2.2 创建和访问共享实例
13.2.3 控制实例化
13.2.4 取消分配
13.2.5 确定是否创建了单例
13.2.6 线程安全
13.2.7 与Interface Builder协作
13.3 Cocoa中的示例
13.4 后果
第14章 通知
14.1 动机
14.2 解决方案
14.2.1 MYNotification类
14.2.2 MYNotificationCenter类
14.2.3 联合存储
14.3 Cocoa中的示例
14.3.1 全局通知名称
14.3.2 “Will”和“Did”通知
14.3.3 同步通知与异步通知
14.3.4 分布式通知
14.4 后果
第15章 委托
15.1 动机
15.2 解决方案
15.2.1 实现委托支持
15.2.2 实现委托
15.2.3 数据源
15.3 Cocoa中的示例
15.4 后果
第16章 层次结构
16.1 动机
16.2 解决方案
16.2.1 实现层次结构
16.2.2 Cocoa视图层次结构
16.2.3 视图层次结构中的坐标系统
16.2.4 浏览视图层次结构
16.3 Cocoa中的示例
16.4 后果
第17章 插座变量、目标和动作
17.1 动机
17.2 解决方案
17.2.1 插座变量
17.2.2 目标
17.2.3 动作
17.2.4 动作和响应者链
17.3 Cocoa中的示例
17.4 后果
第18章 响应者链
18.1 动机
18.2 解决方案
18.2.1 术语
18.2.2 响应者链
18.2.3 扩展的响应者链
18.2.4 遍历扩展的响应者链
18.2.5 插入对象到响应者链中
18.2.6 利用响应者链
18.3 Cocoa中的示例
18.4 后果
第19章 联合存储
19.1 动机
19.2 解决方案
19.3 Cocoa中的示例
19.3.1 引用计数的内存管理
19.3.2 键值编码
19.4 后果
第20章 调用
20.1 动机
20.2 解决方案
20.2.1 方法签名
20.2.2 使用NSInvocation对象
20.2.3 使用计时器
20.2.4 延迟的消息发送
20.3 Cocoa中的示例
20.4 后果
第21章 原型
21.1 动机
21.2 解决方案
21.3 Cocoa中的示例
21.3.1 使用MYLabeledBarCell实例作为原型
21.3.2 使用MYColorLabeledBarCell实例作为原型
21.4 后果
第22章 享元
22.1 动机
22.2 解决方案
22.3 Cocoa中的示例
22.3.1 封装非对象值
22.3.2 减少存储需求
22.3.3 替代其他对象
22.4 后果
第23章 装饰器
23.1 动机
23.2 解决方案
23.3 Cocoa的示例
23.4 后果
第四部分 主要用于隐藏复杂性的模式
第24章 包
24.1 动机
24.2 解决方案
24.3 Cocoa中的示例
24.4 后果
第25章 类簇
25.1 动机
25.2 解决方案
25.3 Cocoa中的示例
25.3.1 子类化类簇的公共接口类
25.3.2 NSString的MYShortStrhag子类
25.3.3 从MYShortstring获得的经验教训
25.4 后果
第26章 外观
26.1 动机
26.2 解决方案
26.3 Cocoa中的示例
26.3.1 文本外观
26.3.2 图像外观
26.3.3 持久存储外观
26.3.4 用户交互外观
26.4 后果
第27章 代理和转发
27.1 动机
27.2 解决方案
27.2.1 实现转发
27.2.2 代理
27.2.3 高阶消息
27.3 Cocoa中的示例
27.4 后果
第28章 管理者
28.1 动机
28.2 解决方案
28.2.1 扩展单例模式
28.2.2 添加其他管理者特性
28.3 Cocoa中的示例
28.4 后果
第29章 控制器
29.1 动机
29.2 解决方案
29.2.1 MYShapeDraw模型子系统
29.2.2 MYShapeDraw视图子系统
29.2.3 MYShapeEditor控制器子系统
29.2.4 扩展MYShapeDraw视图子系统以进行编辑
29.2.5 重新设计和泛化解决方案
29.3 Cocoa中的示例
29.4 后果
第五部分 模式应用的实用工具
第30章 核心数据模型
30.1 模型子系统的角色
30.2 核心数据的术语
30.2.1 实体
30.2.2 特性
30.2.3 关系
30.2.4 属性
30.3 核心数据内模式之间的协作
……
附录 资源
序
前言
作者简介
第一部分 一种可控制一切的模式
第1章 模型-视图-控制器
1.1 Cocoa中的MVC
1.1.1 模型子系统的核心数据支持
1.1.2 视图子系统的应用程序工具箱支持
1.1.3 控制器子系统的应用程序工具箱支持
1.1.4 Cocoa的文本架构
1.1.5 Cocoa的文档架构
1.1.6 Cocoa编写脚本的能力
1.1.7 Cocoa的偏好窗格架构
1.1.8 Quart2Composei。的架构
1.1.9 QTKit的架构
1.2 小结
第2章分 析和应用MVC
2.1 非MVC设计
2.2 MVC设计
2.3 小结
第二部分 基础模式
第3章 两阶段创建
3.1 动机
3.2 解决方案
3.2.1 分区
3.2.2 初始化已分配的内存
3.2.3 实现指定的初始化方法
3.2.4 在初始化方法中使用分区
3.2.5 创建临时实例
3.3 Cocoa中的示例
3.4 后果
第4章 模板方法
4.1 动机
4.2 解决方案
4.2.1 默认模板方法
4.2.2 利用模板方法进行设计
4.3 Cocoa中的示例
4.3.1 使用-drawRect:模板方法
4.3.2 其他Cocoa模板方法
4.4 后果
第5章 动态创建
5.1 动机
5.2 解决方案
5.2.1 使用动态创建
5.2.2 用动态创建实现插件架构
5.3 Cocoa中的示例
5.4 后果
第6章 类别
6.1 动机
6.2 解决方案
6.2.1 非正式协议
6.2.2 匿名类别
6.2.3 代码组织
6.2.4 何时使用类别与子类化
6.3 Cocoa中的示例
6.3.1 把类别用于组织
6.3.2 把类别用于非IE式协议
6.3.3 把类别用于框架划分
6.4 后果
6.4.1 方法冲突
6.4.2 替换方法
6.4.3 软件维护
第7章 匿名类型和异类容器
7.1 动机
7.2 解决方案
7.2.1 匿名类型
7.2.2 赋值
7.2.3 异类容器
7.3 Cocoa中的示例
7.4 后果
第8章 枚举器
8.1 动机
8.2 解决方案
8.2.1 使用枚举器对象
8.2.2 使用快速枚举
8.2.3 创建自定义的枚举器
8.2.4 实现快速枚举
8.2.5 内部枚举
8.3 Cocoa中的示例
8.4 后果
第9章 执行选择器和延迟执行
9.1 动机
9.2 解决方案
9.2.1 延迟执行
9.2.2 Objective-C消息发送的实现
9.3 Cocoa中的示例
9.4 后果
第10章 访问器
10.1 动机
10.2 解决方案
10.2.1 引用计数的内存管理
10.2.2 管理保留计数的访问器
10.2.3 将内存管理限制在访问器中
10.2.4 可变性
10.2.5 NSKeyValueCoding
10.2.6 Interface Builder插座变量
10.2.7 Obiective-C2.0的属性
10.3 Cocoa中的示例
10.4 后果
第11章 归档和解档
11.1 动机
11.2 解决方案
11.3 Cocoa中的示例
11.3.1 实现NSCoding协议
11.3.2 编码和解码非对象类型
11.3.3 对象替换
11.3.4 nib意识
11.4 后果
第12章 复制
12.1 动机
12.2 解决方案
12.3 Cocoa中的示例
12.3.1 实现NSCopying
12.3.2 实现深复制
12.3.3 实现NSMutableCopying
12.3.4 必需的复制
12.3.5 复制Objective-C2.0的属性
12.3.6 避免使用NSCopyObject()
12.4 后果
第三部分 主要通过解耦来变得更强大的模式
第13章 单例
13.1 动机
13.2 解决方案
13.2.1 封装共享资源
13.2.2 创建和访问共享实例
13.2.3 控制实例化
13.2.4 取消分配
13.2.5 确定是否创建了单例
13.2.6 线程安全
13.2.7 与Interface Builder协作
13.3 Cocoa中的示例
13.4 后果
第14章 通知
14.1 动机
14.2 解决方案
14.2.1 MYNotification类
14.2.2 MYNotificationCenter类
14.2.3 联合存储
14.3 Cocoa中的示例
14.3.1 全局通知名称
14.3.2 “Will”和“Did”通知
14.3.3 同步通知与异步通知
14.3.4 分布式通知
14.4 后果
第15章 委托
15.1 动机
15.2 解决方案
15.2.1 实现委托支持
15.2.2 实现委托
15.2.3 数据源
15.3 Cocoa中的示例
15.4 后果
第16章 层次结构
16.1 动机
16.2 解决方案
16.2.1 实现层次结构
16.2.2 Cocoa视图层次结构
16.2.3 视图层次结构中的坐标系统
16.2.4 浏览视图层次结构
16.3 Cocoa中的示例
16.4 后果
第17章 插座变量、目标和动作
17.1 动机
17.2 解决方案
17.2.1 插座变量
17.2.2 目标
17.2.3 动作
17.2.4 动作和响应者链
17.3 Cocoa中的示例
17.4 后果
第18章 响应者链
18.1 动机
18.2 解决方案
18.2.1 术语
18.2.2 响应者链
18.2.3 扩展的响应者链
18.2.4 遍历扩展的响应者链
18.2.5 插入对象到响应者链中
18.2.6 利用响应者链
18.3 Cocoa中的示例
18.4 后果
第19章 联合存储
19.1 动机
19.2 解决方案
19.3 Cocoa中的示例
19.3.1 引用计数的内存管理
19.3.2 键值编码
19.4 后果
第20章 调用
20.1 动机
20.2 解决方案
20.2.1 方法签名
20.2.2 使用NSInvocation对象
20.2.3 使用计时器
20.2.4 延迟的消息发送
20.3 Cocoa中的示例
20.4 后果
第21章 原型
21.1 动机
21.2 解决方案
21.3 Cocoa中的示例
21.3.1 使用MYLabeledBarCell实例作为原型
21.3.2 使用MYColorLabeledBarCell实例作为原型
21.4 后果
第22章 享元
22.1 动机
22.2 解决方案
22.3 Cocoa中的示例
22.3.1 封装非对象值
22.3.2 减少存储需求
22.3.3 替代其他对象
22.4 后果
第23章 装饰器
23.1 动机
23.2 解决方案
23.3 Cocoa的示例
23.4 后果
第四部分 主要用于隐藏复杂性的模式
第24章 包
24.1 动机
24.2 解决方案
24.3 Cocoa中的示例
24.4 后果
第25章 类簇
25.1 动机
25.2 解决方案
25.3 Cocoa中的示例
25.3.1 子类化类簇的公共接口类
25.3.2 NSString的MYShortStrhag子类
25.3.3 从MYShortstring获得的经验教训
25.4 后果
第26章 外观
26.1 动机
26.2 解决方案
26.3 Cocoa中的示例
26.3.1 文本外观
26.3.2 图像外观
26.3.3 持久存储外观
26.3.4 用户交互外观
26.4 后果
第27章 代理和转发
27.1 动机
27.2 解决方案
27.2.1 实现转发
27.2.2 代理
27.2.3 高阶消息
27.3 Cocoa中的示例
27.4 后果
第28章 管理者
28.1 动机
28.2 解决方案
28.2.1 扩展单例模式
28.2.2 添加其他管理者特性
28.3 Cocoa中的示例
28.4 后果
第29章 控制器
29.1 动机
29.2 解决方案
29.2.1 MYShapeDraw模型子系统
29.2.2 MYShapeDraw视图子系统
29.2.3 MYShapeEditor控制器子系统
29.2.4 扩展MYShapeDraw视图子系统以进行编辑
29.2.5 重新设计和泛化解决方案
29.3 Cocoa中的示例
29.4 后果
第五部分 模式应用的实用工具
第30章 核心数据模型
30.1 模型子系统的角色
30.2 核心数据的术语
30.2.1 实体
30.2.2 特性
30.2.3 关系
30.2.4 属性
30.3 核心数据内模式之间的协作
……
附录 资源
猜您喜欢