Cocoa设计模式简介.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Cocoa设计模式简介;有关设计模式 什么是设计模式 为什么要用设计模式 基础模式 MVC 模板方法 更强大的模式 单例 通知 委托;什么是设计模式(Design pattern)? 设计模式是一套被反复使用的、多数人知晓的、经过分类的,代码编写经验的总结。 为什么要使用设计模式? 设计模式在一定程度上帮助我们实现代码的重用,编写出健壮的代码。 注意:不能滥用设计模式 ;Cocoa基础模式介绍;M,Model,处理应用程序的业务逻辑,数据。关键子系统 V,View,应用程序的UI C,Controller,用来解除M和V之间的耦合;MVC;MVC;解除模型子系统和视图之间的耦合,即M与V互不依赖——低耦合 高度可重用性,控制器根据需求选择模型进行处理,并选择视图将处理结果展示出来 快速部署,业务逻辑和界面表现分离且互不干涉,缩短开发时间 缺点:管理更多的文件。;“不要找我们,我们会找你”——好莱坞模式 系统在需要使用到时候会自动调用,一般不需要直接调用 子类不改变算法结构即可重定义算法或过程中的某些特定步骤 -dealloc,-drawRect,-init,-ViewDidLoad??;默认模板方法3大规则: 何时可以调用默认实现 很都情况下,默认的实现没有任何功能。此时调用默认实现是安全的,但也是没有必要的。如-drawRect 何时应该调用默认实现 默认实现的规则可能某些情况与你的设定是相同的,此时不需要再去实现默认方法。如-pointInside:withEvent 何时必须调用默认实现 模板方法的默认实现做了很重要的操作,任何子类重定义时必须显示调用。如-dealloc ;该模式需要创建子类以重写模板方法 可能难以文档化模板方法的预期使用 需要清晰地标识方法,使得可以理解它们的预期使用,并且需要指明每个方法的调用规则(可以,应该,必须,禁止) 模板方法模式最好只保留用于最成熟、稳定的设计中;更强大的模式;仅有一个实例,并且定义了创建和访问实例的约定 通常表示物理设备,系统属性或不应该被复制的虚拟资源 UIApplication,UIWindow, Myself,SocketManager等 思考:单例和静态类;封装共享资源 提供唯一一个访问接口(内置创建方法) 控制实例化,阻止创建类的多个实例。需要考虑new,alloc,copy方法 取消分配。由于单例不会被释放,需要在应用终止的时候,释放占用的资源 线程安全;一个单例的Demo;优点: 对于物理设备,系统属性等。数据唯一,方便使用 缺点: 一旦被创建,就一直在内存中,直到程序结束前无法被释放;对象之间无须紧密的耦合 一个对象可以给任意数量的对象广播消息,支持一对多、多对多 适用于MVC模式下;通知;只有注册接收通知消息,才会接收到相应的通知 对象销毁前,必须注销已注册的所有消息,不然会导致程序Crash;委托是一种简单而强大的模式。在此模式中,程序中的一个对象代表另外一个对象执行某个动作,或者与之相互协作共同完成某个任务。发布委托的对象持有其他对象(委托)的引用。在适当的时候,它会向委托发送消息。消息用于通知委托的对象将要处理或者已经处理某个事件。作为响应,委托对象会更新外观或者更新自身或应用程序其他对象的状态。在某些情况下,委托对象也可以返回一个值。;UIApplicationDelegate Protocol –?application:didFinishLaunchingWithOptions: –?applicationWillTerminate: –?applicationDidFinishLaunching:;创建自己的委托;定义委托对象;设置委托对象;定义委托方法、声明实现委托;使用方式 委托对象被销毁时,一定要将委托对象置为nil ;Thank You

文档评论(0)

iris + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档