预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共27页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Cocoa设计模式简介有关设计模式 什么是设计模式 为什么要用设计模式 基础模式 MVC 模板方法 更强大的模式 单例 通知 委托什么是设计模式(Designpattern)? 设计模式是一套被反复使用的、多数人知晓的、经过分类的,代码编写经验的总结。 为什么要使用设计模式? 设计模式在一定程度上帮助我们实现代码的重用,编写出健壮的代码。 注意:不能滥用设计模式 Cocoa基础模式介绍M,Model,处理应用程序的业务逻辑,数据。关键子系统 V,View,应用程序的UI C,Controller,用来解除M和V之间的耦合MVCMVC解除模型子系统和视图之间的耦合,即M与V互不依赖——低耦合 高度可重用性,控制器根据需求选择模型进行处理,并选择视图将处理结果展示出来 快速部署,业务逻辑和界面表现分离且互不干涉,缩短开发时间 缺点:管理更多的文件。“不要找我们,我们会找你”——好莱坞模式 系统在需要使用到时候会自动调用,一般不需要直接调用 子类不改变算法结构即可重定义算法或过程中的某些特定步骤 -dealloc,-drawRect,-init,-ViewDidLoad⋯⋯默认模板方法3大规则: 何时可以调用默认实现 很都情况下,默认的实现没有任何功能。此时调用默认实现是安全的,但也是没有必要的。如-drawRect 何时应该调用默认实现 默认实现的规则可能某些情况与你的设定是相同的,此时不需要再去实现默认方法。如-pointInside:withEvent 何时必须调用默认实现 模板方法的默认实现做了很重要的操作,任何子类重定义时必须显示调用。如-dealloc 该模式需要创建子类以重写模板方法 可能难以文档化模板方法的预期使用 需要清晰地标识方法,使得可以理解它们的预期使用,并且需要指明每个方法的调用规则(可以,应该,必须,禁止) 模板方法模式最好只保留用于最成熟、稳定的设计中更强大的模式仅有一个实例,并且定义了创建和访问实例的约定 通常表示物理设备,系统属性或不应该被复制的虚拟资源 UIApplication,UIWindow,Myself,SocketManager等 思考:单例和静态类封装共享资源 提供唯一一个访问接口(内置创建方法) 控制实例化,阻止创建类的多个实例。需要考虑new,alloc,copy方法 取消分配。由于单例不会被释放,需要在应用终止的时候,释放占用的资源 线程安全一个单例的Demo优点: 对于物理设备,系统属性等。数据唯一,方便使用 缺点: 一旦被创建,就一直在内存中,直到程序结束前无法被释放对象之间无须紧密的耦合 一个对象可以给任意数量的对象广播消息,支持一对多、多对多 适用于MVC模式下通知只有注册接收通知消息,才会接收到相应的通知 对象销毁前,必须注销已注册的所有消息,不然会导致程序Crash委托是一种简单而强大的模式。在此模式中,程序中的一个对象代表另外一个对象执行某个动作,或者与之相互协作共同完成某个任务。发布委托的对象持有其他对象(委托)的引用。在适当的时候,它会向委托发送消息。消息用于通知委托的对象将要处理或者已经处理某个事件。作为响应,委托对象会更新外观或者更新自身或应用程序其他对象的状态。在某些情况下,委托对象也可以返回一个值。UIApplicationDelegateProtocol –application:didFinishLaunchingWithOptions: –applicationWillTerminate: –applicationDidFinishLaunching:创建自己的委托定义委托对象设置委托对象定义委托方法、声明实现委托使用方式 委托对象被销毁时,一定要将委托对象置为nil ThankYou