首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 操作系统 >

Cocoa设计模式 [平装]

2014-02-10 
编辑推荐《Cocoa设计模式》:对于cocoa框架的庞大和复杂,mac和iphone开发者常常不知所措。虽然cocoa看起来很庞
商家名称 信用等级 购买信息 订购本书
Cocoa设计模式 [平装] 去商家看看
Cocoa设计模式 [平装] 去商家看看

Cocoa设计模式 [平装]

编辑推荐

《Cocoa设计模式》:对于cocoa框架的庞大和复杂,mac和iphone开发者常常不知所措。虽然cocoa看起来很庞大,但是一旦理解了它所使用的面向对象的模式,你就会发现它极其出色,也非常简单可靠。
《Cocoa设计模式》首先介绍了所有模式的起源,即“模型-视图-控制”模式,它是所有mac和iphone开发的核心,因此从一开始就牢固掌握它非常重要。
《Cocoa设计模式》列出了将在cocoa中用到的主要设计模式,包括:
基础模式,如枚举器、访问器和两阶段创建;
增强模式,如单例模式、委托模式和响应链;
隐藏复杂性的模式,如程序包、类集群、代理和转发,以及控制器。
这些还不是全部!《Cocoa设计模式》精心列出了28种设计模式,并包含一些依然有效的示例代码。《Cocoa设计模式》还讲解了core data模型、appkit视图,以及绑定和控制器。

作者简介

作者:(美国)布克(Erik M.Buck) (美国)雅克曼(Donald A.Yacktman) 译者:陈宗斌 孔祥波 等

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 核心数据内模式之间的协作
……
附录 资源

序言

Apple的Cocoa软件所包含的多数技术从1988年开始就已经投入商业应用,虽然Cocoa可能不够完善,但仍然具有革命性意义。它已在市场上得到广泛应用,如NEXTSTEP、OPENSTEP、Rhapsody和Yellow Box等都应用了该技术。Cocoa由一系列可重用的软件框架组成,包含用于构建Mac OS X桌面和手机应用程序的对象和相关资源。近年来,Apple对Cocoa进行了显著的扩展并添加了新的软件开发工具,从而在Cocoa已经提供的高水平性能的基础上进一步提高了程序员的效率。
很多程序员在第一次使用此框架时,面对宽泛和复杂的Cocoa通常会不知所措。Cocoa包含大量的功能部件,但在一致性方面表现却十分出色,这要归功于在Cocoa的设计中应用了模式。了解这些模式才能更有效地使用框架,并在编写自己的应用程序时作为指导。
本书介绍了Cocoa框架中用到的面向对象的设计模式。设计模式不是Cocoa的专利,它在很多可重用的软件库和软件开发环境中均有所应用。设计模式能识别那些重复出现的软件问题和解决它们的最佳做法。本书的主要目的是提供有关设计的专业知识和Cocoa的基本原理,掌握了这些知识,你就可以在自己的软件中高效地重用那些可靠的正确模式,即使你用的并非Cocoa。

文摘

插图:



第一部分一种可控制一切的模式
第1章模型-视图-控制器
模型-视图-控制器(MVC)是世界上最古老、最成功的可复用软件设计模式之一。它最初出现在20世纪70年代的Smalltalk编程语言中。MVC定义了Cocoa框架的总体结构。它是一种高级别的模式,能将多个协作对象的大型群组划分为独立的子系统:模型、视图和控制器。
分析通用应用程序的功能和行为,有助于理解子系统在MVC模式中担当的角色。多数应用程序存储信息、检索信息,并将信息呈现给用户,使用户能够编辑或操纵信息。在面向对象的应用程序中,信息不只是字节,对象会将信息与使用该信息的方法封装在一起。应用程序中的每个对象都应该符合且仅符合以下子系统之一:
·模型。模型子系统由为应用程序提供独特功能和信息存储的对象组成。模型包含处理应用程序数据的所有规则。模型是使应用程序体现其价值的关键子系统。保证模型子系统的独立而不依赖于视图或者控制器子系统非常关键。
·视图。视图子系统用于展示从模型中收集的信息,并为用户提供与此信息交互的方式。理解视图的关键是要知道总是有大量视图存在。例如,可能有图形用户界面视图、打印报表视图、命令行视图、基于Web的视图以及脚本语言视图,它们都与同一个模型交互。
·控制器。控制器的目的是解除模型和视图之间的耦合。用户与视图交互的结果是向控制器子系统发出请求,还可能会进一步请求改变模型中的信息。控制器还要处理数据的转换和格式,以呈现给用户。例如,模型中可能以米存储数据,但根据用户的偏好,控制器可能要将数据转换为英尺。模型可能将对象存储在无序集合中,但控制器可能会先为这些对象排序,然后再转到视图中展示给用户。

喜欢Cocoa设计模式 [平装]请与您的朋友分享,由于版权原因,读书人网不提供图书下载服务

热点排行