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