作  者:(美)钟冠贤 著作 刘威 译者    定  价:59    出 版 社:人民邮电出版社    出版日期:2011年11月01日    页  数:297    装  帧:平装    ISBN:9787115265869                               《Objective-C编程之道:iOS设计模式解析》:解析IOS设计模式的开山之作、优化Obiective-C编程实践的必修宝典、由此迈入移动开发高手行列。
苹果公司的AppStore拥有超过20万个应用(每秒都在增加)供用户选择,正深刻地改变着软件行业。每天都有更多的iOS开发者想投入到这一潮流,希望凭藉下一个杀手级应用发家致富。《Objective-C编程之道:iOS设计模式解析》的目标正是带领读者完成从新手到高手的转变。关注底层的设计模式而非一味只顾着写代码,从而开发出更加高效、等                         
●部分 设计模式初体验
●第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 作为复合设计模式的MVC5
●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
●部分目录                        
                      内容简介                  
                        《objective-c编程之道:ios设计模式解析》是基于ios的软件开发指南。书中应用gof的经典设计模式,介绍了如何在代码中应用创建型模式、结构型模式和行为模式,如何设计模式以巩固应用程序,并通过设计模式实例介绍mvc在cocoatouch框架中的工作方式。
《objective-c编程之道:ios设计模式解析》适用于那些已经具备objective-c基础、想利用设计模式来提高软件开发效率的中不错ios开发人员。                                          (美)钟冠贤 著作 刘威 译者                                                    Carlo Chung(钟冠贤) 计算机科学家,喜欢摆弄机器、爱好摄影。他拥有计算机科学硕士学位,专业方向是计算机视觉(人工智能的分支)。把人工智能与任何小装置结合起来的想法都能令他兴奋不已。他常常梦想着让iPhone变得更智能、更像人,曾把计算机视觉的知识应用到iPhone平台并开发了几个应用,有两个被作为特色应用出现在App Store首页,其中有一个还被列为摄影类别中的*佳付费应用(Top Paid)。                                                            生成器
    选择建造自己的房子的人会把工程外包给承包商。单一承包商不能建造整个房子,他将其分解为几个部分,然后转包给几个实际的建筑商(builder),他们懂得如何将零部件组装起来。房子由风格、颜色和尺寸各不相同的部件组成。客户告诉承包商房子里都要有什么,然后承包商协调各房屋建筑商,决定需要做什么。应该如何建造,建筑商就如何施工。建房子是个复杂过程,单凭一双手就想建房子,即便可能也**困难。如果承包商(指导者)与懂得如何建造的建筑商相互协调,这一过程将简单得多且更易管理。
    有时,构建某些对象有多种不同方式。如果这些逻辑包含在构建这些对象的类的单一方法中,构建的逻辑会**荒唐(例如,针对各种构建需求的一大片嵌套if-else或者switc等                                                  生成器
    选择建造自己的房子的人会把工程外包给承包商。单一承包商不能建造整个房子,他将其分解为几个部分,然后转包给几个实际的建筑商(builder),他们懂得如何将零部件组装起来。房子由风格、颜色和尺寸各不相同的部件组成。客户告诉承包商房子里都要有什么,然后承包商协调各房屋建筑商,决定需要做什么。应该如何建造,建筑商就如何施工。建房子是个复杂过程,单凭一双手就想建房子,即便可能也*常困难。如果承包商(指导者)与懂得如何建造的建筑商相互协调,这一过程将简单得多且更易管理。
    有时,构建某些对象有多种不同方式。如果这些逻辑包含在构建这些对象的类的单一方法中,构建的逻辑会*常荒唐(例如,针对各种构建需求的一大片嵌套if-else或者switc等                       
				
 
				
				
					《Objective-C编程之道:iOS设计模式解析》是一本旨在帮助iOS开发者深入理解Objective-C语言特性,并熟练运用设计模式提升代码质量、可维护性和可扩展性的专业书籍。本书并非简单罗列API或语法,而是着重于“道”的探讨,即如何在实际开发中,通过设计模式来构建更健壮、更易于理解和维护的iOS应用程序。  本书的核心价值在于:     深度剖析Objective-C精髓: Swift的出现并未使Objective-C退出历史舞台,许多现有项目仍广泛使用Objective-C,并且其独特的面向对象机制和运行时特性在某些场景下依然具有优势。本书将系统地梳理Objective-C的核心概念,包括类、对象、继承、多态、消息传递、协议、分类、block以及runtime特性等,并结合实际开发中的常见问题,深入讲解如何巧妙运用这些特性来编写出高效、优雅的代码。我们不会停留在表面语法,而是会深入挖掘其背后的工作原理,让开发者真正理解“为什么”这么写,以及“如何”写得更好。    精选实用的iOS设计模式: 设计模式是软件工程中的宝贵经验结晶,它们提供了一套经过验证的解决方案,用于解决软件开发中的常见问题。本书将聚焦于在iOS开发中最具价值和最常使用的设计模式,并按照经典的设计模式分类(创建型、结构型、行为型)进行系统讲解。但我们不会孤立地介绍每个模式,而是将它们置于iOS开发的具体语境中,深入分析其在UIKit、Foundation等框架中的应用,以及如何将其应用于具体的iOS开发场景。    “模式背后的思想”与“模式在iOS中的实践”的双重解析: 对于每一种设计模式,本书都将遵循“理论讲解”与“实践应用”相结合的原则。首先,我们会清晰地阐述该模式的意图、解决的问题、动机、结构以及潜在的优缺点。这部分旨在帮助读者建立对模式的宏观认识,理解其核心思想。随后,我们将重点放在模式在iOS开发中的具体实现。我们会提供清晰、可执行的代码示例,展示如何在Objective-C中实现该模式,并详细解释代码中的设计选择和Rationale。更重要的是,我们会讨论该模式在iOS常见应用场景中的落地,例如如何使用单例模式管理应用全局配置,如何使用工厂模式创建不同类型的UI元素,如何使用观察者模式实现数据变化通知,以及如何使用MVC、MVVM、MVP等架构模式来组织App的整体结构。    从“知其然”到“知其所以然”的进阶路径: 许多开发者可能了解一些设计模式的名称,甚至能够生搬硬套地写出代码,但却难以理解其真正的精髓,也无法根据实际情况灵活运用。本书将致力于填补这一鸿沟。我们会通过对比分析、案例演示、以及“反模式”的探讨,引导读者理解每种设计模式诞生的背景和解决的核心痛点。通过深入理解模式背后的思想,读者将能够更自信地在项目中选择和应用合适的设计模式,甚至根据项目需求进行适当的变体和组合。    提升代码的可读性、可维护性和可扩展性: 优秀的设计模式能够显著提升代码的质量。本书通过讲解各种设计模式,将直接帮助开发者写出更清晰、更易于理解的代码,减少耦合,提高模块的独立性,从而让代码更容易维护和修改。同时,运用合理的设计模式也能为未来的功能扩展打下坚实的基础,使得新增功能不会对现有代码造成过大的冲击,大大降低了开发的成本和风险。    面向对象设计原则的贯穿与融合: 设计模式并非孤立存在,它们往往是面向对象设计原则(如SOLID原则:单一职责、开闭原则、里氏替换原则、接口隔离原则、依赖倒置原则)的体现和应用。本书在讲解设计模式的同时,也会将这些面向对象设计原则融入其中,帮助开发者理解模式如何促进这些原则的实现,以及如何通过遵循这些原则来更好地设计和选择设计模式。  本书内容结构(示意,具体章节安排可能有所调整):  第一部分:Objective-C语言的深度探索     深入理解Objective-C的消息传递机制:  `objc_msgSend`的奥秘,动态方法解析,消息转发等。    Runtime的强大力量:  Method Swizzling,Associated Objects,Protocol Extension等高级Runtime特性在实际开发中的应用。    Block的精妙之处:  Block的捕获机制,循环引用问题及解决方案,Block作为回调和闭包的运用。    Objective-C的内存管理回顾与进阶: ARC工作原理,以及在复杂场景下的内存管理技巧。    Objective-C与Swift的交互:  在混合开发中的最佳实践。  第二部分:创建型设计模式     单例模式 (Singleton):  确保类只有一个实例,并提供一个全局访问点。在iOS中,例如 `UIApplication.shared`,`UserDefaults.standard`。本书将探讨其在Objective-C中的实现方式,以及需要注意的线程安全问题。    工厂方法模式 (Factory Method):  定义一个创建对象的接口,但由子类决定实例化哪个类。在iOS中,例如创建不同类型的Cell,或者不同风格的Button。    抽象工厂模式 (Abstract Factory):  提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。例如,为不同平台或主题创建UI元素集合。    建造者模式 (Builder):  将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。在iOS中,例如构建复杂的HTTP请求,或配置复杂的UI视图层级。    原型模式 (Prototype):  用原型实例创建新对象,并维护一个原型列表,灵活地复制原型。在iOS中,例如克隆复杂对象,或者在游戏开发中创建大量相似的游戏元素。  第三部分:结构型设计模式     适配器模式 (Adapter):  将一个类的接口转换成另一个客户端期望的接口。在iOS中,例如适配第三方库的接口,或者在tableView/collectionView中处理不同数据源的适配。    桥接模式 (Bridge):  将抽象化与实现分离,使它们可以独立变化。在iOS中,例如将UI绘制逻辑与不同的渲染后端分离。    组合模式 (Composite):  将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。在iOS中,例如表示视图层级,或者文件系统结构。    装饰器模式 (Decorator):  动态地给一个对象添加一些额外的职责。就增加功能而言,Decorator模式比生成子类更为灵活。在iOS中,例如为文本视图添加滚动条、高亮等功能。    外观模式 (Facade):  为一系列复杂子系统的接口提供一个一致的界面。Facade定义了一个高层接口,使子系统更容易使用。在iOS中,例如简化Core Data的常用操作,或者封装一组网络请求。    享元模式 (Flyweight):  运用共享技术有效地支持大量细粒度的对象。在iOS中,例如共享UI元素,减少内存占用,如细胞重用机制。    代理模式 (Proxy):  为另一个对象提供一个替身或占位符,以控制对这个对象的访问。在iOS中,例如远程代理、虚拟代理(懒加载)、保护代理等。  第四部分:行为型设计模式     责任链模式 (Chain of Responsibility):  避免请求的发送者与接收者耦合。当一个请求在处理者链中传递,直到有一个处理者能够处理它为止。在iOS中,例如事件传递机制,或者自定义手势识别。    命令模式 (Command):  将一个请求封装成一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。在iOS中,例如实现撤销/重做功能,或者管理UI操作队列。    解释器模式 (Interpreter):  给定一个语言,定义它的文法的一种表示,并定义一个解释器。在iOS中,例如解析配置文件,或者实现简单的表达式求值。    迭代器模式 (Iterator):  提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。在iOS中,例如遍历集合,或者实现自定义的枚举逻辑。    中介者模式 (Mediator):  定义一个对象,它封装了一系列如何交互的对象。Mediator使得对象可以松散耦合,并且可以独立地改变它们的交互,而无需为一系列的对象类进行子类化。在iOS中,例如管理多个UI组件之间的交互,或者实现多人游戏中的通信。    备忘录模式 (Memento):  在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到就的状态。在iOS中,例如实现App的保存/恢复功能,或者版本回溯。    观察者模式 (Observer):  定义了对象之间的一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在iOS中,这是Foundation框架的核心模式之一,例如`NotificationCenter`,KVO(Key-Value Observing)。    状态模式 (State):  允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎改变了它的类。在iOS中,例如管理UI控件的不同状态(enabled, disabled, selected),或者游戏角色的不同状态(idle, walking, attacking)。    策略模式 (Strategy):  定义了一系列算法,把它们封装起来,并且使它们可以互相替换。Strategy使得算法可以独立于使用它的客户而变化。在iOS中,例如实现不同的排序算法,或者不同的数据加密方法。    模板方法模式 (Template Method):  在算法的骨架中,定义了算法的某些步骤,允许子类为一个或多个步骤提供自己的实现。Template Method使得子类可以在不改变算法的结构的情况下,重新定义算法的某些特定步骤。在iOS中,例如自定义的网络请求流程,或者自定义的数据处理流程。    访问者模式 (Visitor):  表示一个作用于某对象结构中的各元素的操作。它可以在不改变该结构的前提下,为结构中的元素添加新的操作。在iOS中,例如遍历复杂的对象图并执行统一的操作,或者为不同类型的对象提供不同的处理逻辑。  第五部分:iOS架构模式与设计模式的融合     MVC (Model-View-Controller):  Objective-C开发中最基础的架构模式,深入解析Controller的角色,以及如何避免Massive View Controller。    MVVM (Model-View-ViewModel):  Objective-C下实现MVVM的挑战与实践,数据绑定在Objective-C中的替代方案。    VIPER (View-Interactor-Presenter-Entity-Router):  一种更清晰的代码分层和解耦的架构模式,在Objective-C中的实现思路。    设计模式在实际项目中的组合与取舍:  如何根据项目规模、团队协作和开发效率,选择合适的设计模式和架构。    代码重构与设计模式的运用:  如何识别代码中的坏味道,并通过应用设计模式进行重构。  本书的目标读者:     有一定Objective-C编程基础,并希望深入理解其精髓的iOS开发者。    对设计模式感到好奇,但不知如何将其应用于iOS开发的开发者。    希望提升代码质量,构建更健壮、可维护、可扩展的iOS应用的开发者。    准备或正在参与大型Objective-C项目,需要规范开发流程和代码设计的开发者。    希望在Objective-C和Swift混合开发环境中,能够写出高质量Objective-C代码的开发者。  通过阅读《Objective-C编程之道:iOS设计模式解析》,您将不仅仅是学习到Objective-C的语法和设计模式的定义,更重要的是,您将学会如何将这些知识融会贯通,在实际的iOS开发中,用更优雅、更高效、更具智慧的方式解决问题,真正领悟Objective-C编程的“道”。