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

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证