解析iOS设计模式的开山之作
优化Objective-C编程实践的必修宝典
由此迈入移动开发高手行列
《Objective-C编程之道:iOS设计模式解析》是基于iOS的软件开发指南。书中应用GoF的经典设计模式,介绍了如何在代码中应用创建型模式、结构型模式和行为模式,如何设计模式以巩固应用程序,并通过设计模式实例介绍MVC在CocoaTouch框架中的工作方式。
《Objective-C编程之道:iOS设计模式解析》适用于那些已经具备Objective-C基础、想利用设计模式来提高软件开发效率的中高级iOS开发人员。
Carlo Chung(钟冠贤),计算机科学家,喜欢摆弄机器、爱好摄影。他拥有计算机科学硕士学位,专业方向是计算机视觉(人工智能的分支)。把人工智能与任何小装置结合起来的想法都能令他兴奋不已。他常常梦想着让iPhone变得更智能、更像人,曾把计算机视觉的知识应用到iPhone平台并开发了几个应用,有两个被作为特色应用出现在App Store首页,其中有一个还被列为摄影类别中的上佳付费应用(Top Paid)。
刘威,2001年毕业于中国科学院研究生院。热爱计算机科学,喜欢编程,尤其喜欢写程序解决实际问题。从2000年起从事软件开发工作,最近几年一直专注于手机软件开发,目前从事Android和iOS软件开发。
★“每学习一门新的编程语言。我都会去买一本介绍其设计模式的书。这些书从来没有让我失望过。从长远来看,我获得的回报十倍于我的付出,本书也不例外。作者首先介绍每一种设计模式的理论和方法。然后给出代码示例。简单地讲,本书结构清晰,易于理解。物超所值。”
——读者评论
★“这是一本启人深思的书。在学习如何将设计模式应用于复杂的lOS应用的同时,我开始静下来思考怎样优化既有代码。向每一位中高级iOS开发人员推荐本书。”
——读者评论
第一部分 设计模式初体验
第1章 你好,设计模式
1.1 这是一本什么书
1.2 开始前的准备
1.3 预备知识
1.4 似曾相识的设计
1.5 设计模式的起源——模型、视图和控制器
1.5.1 在模型对象中封装数据和基本行为
1.5.2 使用视图对象向用户展示信息
1.5.3 用控制器对象联系起模型和视图
1.5.4 作为复合设计模式的MVC
1.6 影响设计的几个问题
1.6.1 针对接口编程,而不是针对实现编程
1.6.2 @protocol与抽象基类
1.6.3 对象组合与类继承
1.7 本书用到的对象和类
1.7.1 类图
1.7.2 对象图
1.8 本书如何安排模式的讲解
1.9 总结
第2章 案例分析:设计一个应用程序
2.1 想法的概念化
2.2 界面外观的设计
2.3 架构设计
2.3.1 视图管理
2.3.2 如何表现涂鸦
2.3.3 如何表现保存的涂鸦图
2.3.4 用户操作
2.4 所用设计模式的回顾
2.5 总结
第二部分 对象创建
第3章 原型
3.1 何为原型模式
3.2 何时使用原型模式
3.3 浅复制与深复制
3.4 使用Cocoa Touch框架中的对象复制
3.5 为Mark聚合体实现复制方法
3.6 将复制的Mark用作“图样模板”
3.7 总结
第4章 工厂方法
4.1 何为工厂方法模式
4.2 何时使用工厂方法
4.3 为何这是创建对象的安全方法
4.4 在TouchPainter中生成不同画布
4.5 在Cocoa Touch框架中应用工厂方法
4.6 总结
第5章 抽象工厂
5.1 把抽象工厂应用到TouchPainter应用程序
5.2 在Cocoa Touch框架中使用抽象工厂
5.3 总结
第6章 生成器
6.1 何为生成器模式
6.2 何时使用生成器模式
6.3 构建追逐游戏中的角色
6.4 总结
第7章 单例
7.1 何为单例模式
7.2 何时使用单例模式
7.3 在Objective-C中实现单例模式
7.4 子类化Singleton
7.5 线程安全
7.6 在Cocoa Touch框架中使用单例模式
7.6.1 使用UIApplication类
7.6.2 使用UIAccelerometer类
7.6.3 使用NSFileManager类
7.7 总结
第三部分 接口适配
第8章 适配器
8.1 何为适配器模式
8.2 何时使用适配器模式
8.3 委托
8.4 用Objective-C协议实现适配器模式
8.5 用Objective-C的块在iOS 4中实现适配器模式
8.5.1 块引用的声明
8.5.2 块的创建
8.5.3 把块用作适配器
8.6 总结
第9章 桥接
9.1 何为桥接模式
9.2 何时使用桥接模式
9.3 创建iOS版虚拟仿真器
9.4 总结
第10章 外观
10.1 何为外观模式
10.2 何时使用外观模式
10.3 为子系统的一组接口提供简化的接口
10.4 在TouchPainter应用程序中使用外观模式
10.5 总结
第四部分 对象去耦
第11章 中介者
11.1 何为中介者模式
11.2 何时使用中介者模式
11.3 管理TouchPainter应用程序中的视图迁移
11.3.1 修改迁移逻辑的困难
11.3.2 集中管理UI交通
11.3.3 在Interface Builder中使用CoordinatingController
11.4 总结
第12章 观察者
12.1 何为观察者模式
12.2 何时使用观察者模式
12.3 在模型-视图-控制器中使用观察者模式
12.4 在Cocoa Touch框架中使用观察者模式
12.4.1 通知
12.4.2 键-值观察
12.5 在TouchPainter中更新CanvasView上的线条
12.6 总结
第五部分 抽象集合
第13章 组合
13.1 何为组合模式
13.2 何时使用组合模式
13.3 理解TouchPainter中Mark的使用
13.4 在Cocoa Touch框架中使用组合模式
13.5 总结
第14章 迭代器
14.1 何为迭代器模式
14.2 何时使用迭代器模式
14.3 在Cocoa Touch框架中使用迭代器模式
14.3.1 NSEnumerator
14.3.2 基于块的枚举
14.3.3 快速枚举
14.3.4 内部枚举
14.4 遍历Scribble的顶点
14.5 总结
第六部分 行为扩展
第15章 访问者
15.1 何为访问者模式
15.2 何时使用访问者模式
15.3 用访问者绘制TouchPainter中的Mark
15.4 访问者的其他用途
15.5 能不能用范畴代替访问者模式
15.6 总结
第16章 装饰
16.1 何为装饰模式
16.2 何时使用装饰模式
16.3 改变对象的“外表”和“内容”
16.4 为UIImage创建图像滤镜
16.4.1 通过真正的子类实现装饰
16.4.2 通过范畴实现装饰
16.5 总结
第17章 责任链
17.1 何为责任链模式
17.2 何时使用责任链模式
17.3 在RPG游戏中使用责任链模式
17.4 总结
第七部分 算法封装
第18章 模板方法
18.1 何为模板方法模式
18.2 何时使用模板方法
18.3 利用模板方法制作三明治
18.4 保证模板方法正常工作
18.5 向模板方法增加额外的步骤
18.6 在Cocoa Touch框架中使用模板方法
18.6.1 UIView类中的定制绘图
18.6.2 Cocoa Touch框架中的其他模板方法实现
18.7 总结
第19章 策略
19.1 何为策略模式
19.2 何时使用策略模式
19.3 在UITextField中应用验证策略
19.4 总结
第20章 命令
20.1 何为命令模式
20.2 何时使用命令模式
20.3 在Cocoa Touch框架中使用命令模式
20.3.1 NSInvocation对象
20.3.2 NSUndoManager
20.4 在TouchPainter中实现撤销与恢复
20.4.1 使用NSUndoManager实现绘图与撤销绘图
20.4.2 自制绘图与撤销绘图的基础设施
20.4.3 允许用户触发撤销与恢复
20.5 命令还能做什么
20.6 总结
第八部分 性能与对象访问
第21章 享元
21.1 何为享元模式
21.2 何时使用享元模式
21.3 创建百花池
21.4 总结
第22章 代理
22.1 何为代理模式
22.2 何时使用代理模式
22.3 用虚拟代理懒加载图像
22.4 在Cocoa Touch框架中使用代理模式
22.5 总结
第九部分 对象状态
第23章 备忘录
23.1 何为备忘录模式
23.2 何时使用备忘录模式
23.3 在TouchPainter中使用备忘录模式
23.3.1 涂鸦图的保存
23.3.2 涂鸦图的恢复
23.3.3 ScribbleMemento的设计与实现
23.4 Cocoa Touch框架中的备忘录模式
23.5 总结
生成器
选择建造自己的房子的人会把工程外包给承包商。单一承包商不能建造整个房子,他将其分解为几个部分,然后转包给几个实际的建筑商(builder),他们懂得如何将零部件组装起来。房子由风格、颜色和尺寸各不相同的部件组成。客户告诉承包商房子里都要有什么,然后承包商协调各房屋建筑商,决定需要做什么。应该如何建造,建筑商就如何施工。建房子是个复杂过程,单凭一双手就想建房子,即便可能也非常困难。如果承包商(指导者)与懂得如何建造的建筑商相互协调,这一过程将简单得多且更易管理。
有时,构建某些对象有多种不同方式。如果这些逻辑包含在构建这些对象的类的单一方法中,构建的逻辑会非常荒唐(例如,针对各种构建需求的一大片嵌套if-else或者switch-case语句)。如果能够把构建过程分解为客户一指导者一生成器的关系,那么过程将更容易管理与复用。针对此类关系的设计模式称为生成器。
本章将讨论生成器模式的概念。后面几节,也会讨论如何使用这一模式来生成RPG游戏中带有复杂特征的角色。
6.1 何为生成器模式
除了客户与其所要的产品,生成器模式还包含两个重要角色:Director(指导者)和Builder(生成器)。Builder知道究竟如何在缺少某些特定信息的情况下建造产品(什么)。Director知道Builder应该建造什么,以参数向其提供缺少的信息来建造特定产品。什么与如何有点儿难懂。尽管Director知道Builder应该建造什么,这并不意味着Director知道具体Builder究竟是什么。它们的静态关系如图6-1中的类图所示。
Builder是一个抽象接口,声明了一个buildpart方法,该builder方法由CorlcreteBuilder实现,以构造实际产品(Product)。
……
这本书我断断续续读了几个月,终于啃完了。坦白说,一开始我抱着极大的期待,因为Objective-C本身就承载了我许多开发情怀,而“设计模式”这个词更是让我觉得能窥探到iOS开发的精髓。书的封面设计简洁大气,很有专业感,这让我对内容产生了更多的好奇。我一直认为,优秀的设计模式能让代码更易于理解、维护和扩展,尤其是在复杂的iOS项目中。在实际工作中,我经常会遇到一些棘手的bug,或者在修改旧代码时感到力不从心,这些往往都与早期设计上的不足有关。因此,我希望通过这本书的学习,能够提升自己的代码架构能力,写出更加健壮、优雅的iOS应用。书的纸质不错,排版也比较清晰,阅读起来不费眼。前期的章节,它似乎着重于基础概念的梳理,为后续的设计模式讲解打下坚实的基础,这点我很欣赏,因为有些书籍上来就讲模式,容易让人摸不着头脑。我期待书中能够深入浅出地剖析各种经典的设计模式,并结合实际的iOS开发场景,给出具体的代码示例和应用建议。比如,像MVC、MVVM、Delegate、Observer等模式,在iOS开发中都非常常见,我希望能看到作者对这些模式的深刻见解,以及它们在不同场景下的优劣势分析。总而言之,这本书在我心中,不仅仅是一本技术书籍,更像是一位经验丰富的导师,希望能引导我走向更专业的iOS开发之路,让我能够更有信心地面对未来的挑战。
评分我之前是一名全栈工程师,在Web端开发方面积累了不少经验,熟悉各种前后端设计模式和架构。最近,我开始涉足iOS开发,发现Objective-C的生态系统与我熟悉的Web开发有很大的不同,尤其是在对象的管理、事件传递以及UI的构建等方面,有很多值得学习和借鉴的地方。在学习过程中,我发现自己习惯性地将Web端的很多模式套用到iOS上,但效果并不理想,甚至会产生一些奇怪的问题。因此,我意识到,深入理解iOS平台特有的设计模式,是提升开发效率和代码质量的关键。这本书的标题,特别是“设计模式解析”,引起了我强烈的兴趣。我希望通过阅读这本书,能够了解到在Objective-C和iOS环境下,有哪些经典且实用的设计模式,以及它们是如何被应用于实际开发中的。我特别关注作者是否能够提供一些跨平台的视角,对比Objective-C与其他语言在设计模式上的异同,以及iOS平台独有的设计模式的优势。例如,是否会涉及像ARC(自动引用计数)这样与Objective-C内存管理紧密相关的模式,或者在UI开发中常用的MVC、MVVM等架构模式。总之,我期望这本书能帮助我建立一个更完整的iOS开发知识体系,将我之前的开发经验与iOS的独特性相结合,从而成为一名更加全面的移动端开发者。
评分这本书的问世,对于许多渴望深入理解Objective-C精髓,并希望在iOS开发领域达到更高水平的开发者而言,无疑是一份宝贵的礼物。我印象最深刻的是,在读到它的简介时,那股浓厚的专业气息扑面而来。“编程之道”四个字,就暗示了这本书不仅仅是停留在API的堆砌,而是要追溯到代码设计和架构的哲学层面。我一直相信,真正的技术高手,不仅仅是掌握大量的语法和库,更重要的是理解背后的设计思想和原则。在我过去的开发经历中,很多时候我们只是简单地复制粘贴网上的代码片段,或者为了快速实现功能而牺牲代码的可读性和可维护性,事后却发现自己挖了一个又一个坑。因此,我非常期待这本书能够提供一种“正确”的、更有前瞻性的开发思路。我希望作者能够通过精炼的语言和恰当的案例,将抽象的设计模式概念,转化为具体可行的代码实践,让我能够理解如何在Objective-C中优雅地应用这些模式,解决实际开发中遇到的各种挑战。这本书的出现,让我觉得终于有机会可以系统地学习和梳理iOS开发的“内功心法”,从而在技术这条道路上走得更远,更稳。
评分我之前是一名Android开发者,最近转战iOS平台,发现Objective-C的语法和一些设计理念与Java/Kotlin有很大的不同,尤其是在对象生命周期管理和内存处理方面,需要一个适应过程。在学习过程中,我遇到了一些技术瓶颈,尤其是在尝试构建大型、可维护的iOS项目时,感觉自己陷入了“写出能跑的代码”的泥潭,而没有真正做到“写出好的代码”。我一直在寻找一本能够系统性地讲解iOS开发核心思想的书籍,特别是能帮助我理解“为什么”要这样做,而不是仅仅“怎么”做。当我在网上看到这本书的介绍时,“iOS设计模式解析”这个副标题立刻吸引了我,这正是我急需的。我希望这本书能够填补我在iOS开发实践中的一些认知空白,让我能够理解并应用一些业界通用的、成熟的解决方案来应对常见的开发问题。我特别关注作者是否能够清晰地解释每个设计模式背后的动机和解决的问题,以及如何在iOS的框架下灵活运用它们。例如,单例模式的应用场景、工厂模式如何简化对象创建、观察者模式如何实现组件间的解耦等等。这本书给我的整体感觉是,它试图构建一个从底层原理到上层架构的知识体系,这对于我这样希望快速提升iOS开发能力的开发者来说,非常有价值。我希望这本书能够让我对Objective-C有更深的理解,并能够编写出更具扩展性和可维护性的代码,为我未来的iOS开发生涯打下坚实的基础。
评分在我的编程生涯中,我一直对那些能够让代码更加“智能”和“健壮”的设计理念充满好奇。Objective-C作为一门历史悠久且功能强大的语言,它的设计哲学和模式应用,我一直都觉得有许多值得深入挖掘的地方。我曾经在学习其他编程语言时,接触过一些设计模式的介绍,但总感觉隔靴搔痒,没有真正理解它们在实际项目中的威力。这次看到《Objective-C编程之道:iOS设计模式解析》这本书,我感觉到一股强烈的共鸣。我对“编程之道”这个词本身就充满敬意,它暗示着一种对代码艺术的追求,一种对解决问题方式的深刻思考。我希望这本书能够帮助我打破固有的思维模式,看到Objective-C在设计模式应用上的独特之处。比如,它会不会从更宏观的角度来探讨如何构建可扩展、可维护的iOS应用程序?它是否会深入剖析一些在iOS开发中至关重要的设计模式,并提供清晰、易懂的代码示例,让我能够立即将其应用到我的项目中?我尤其期待书中能够讲解一些能够提升代码复用性、降低耦合度、并且使得团队协作更加顺畅的设计模式。这本书在我看来,不仅仅是一本技术指南,更像是一次对iOS开发哲学的一次探索,我渴望从中获得启发,将我的代码提升到一个全新的境界。
评分学习需要,不错。。。。。
评分应该是正品。搞活动买的,划算多了
评分书中网址: www.objective-c-design-patterns.com
评分换货了一次,一开始的时候封皮磨损很严重,后来又换货了一次就OK了。就很纳闷儿京东能不能不要把旧书或者别人退货的书发给我们呢?
评分好书必看,点个赞
评分店大欺客啊
评分随手翻了一下,挺不错的书,里面的东西都是一些适合有一定基础的人看,不过值得一买、
评分书很不错,慢慢看吧。哈哈
评分听说团队工作的时候会看中设计模式而不是算法结构,所以买一个补补课
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有