设计模式 For iOS-02-单例模式.pdf

设计模式 For iOS-02-单例模式.pdf

ID:52645928

大小:601.61 KB

页数:12页

时间:2020-03-29

设计模式 For iOS-02-单例模式.pdf_第1页
设计模式 For iOS-02-单例模式.pdf_第2页
设计模式 For iOS-02-单例模式.pdf_第3页
设计模式 For iOS-02-单例模式.pdf_第4页
设计模式 For iOS-02-单例模式.pdf_第5页
资源描述:

《设计模式 For iOS-02-单例模式.pdf》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、设计模式ForiOS第02式单例模式整理:BeyondVincent(破船)时间:2013.05.09目录目录2第02式单例模式................31.0.简介...................................................31.0.1.什么是单例模式......................31.0.2.什么时候使用单例模式?......41.1.iOS中单例模式的实现方法............41.2.单例的使用..................

2、.....................91.3.代码下载地址.................................101.4.参考.................................................11关于设计模式ForiOS的整理.....122第02式单例模式1.0.简介1.0.1.什么是单例模式单例模式是一个类在系统中只有一个实例对象。通过全局的一个入口点对这个实例对象进行访问。在iOS开发中,单例模式是非常有用的一种设计模式。如下图,是一个简单单例模式的

3、UML类图。iOSSDK中也有许多类使用了单例模式,例如,UIApplication:当程序启动的时候,会调用UIApplicationMain方法,在该方法中,会实例化一个UIApplication对象,之后在程序中的任意地方调用sharedApplication方法都将返回一个与当前应3用程序相关的UIApplication实例(UIApplicationMain方法中创建的UIApplication单例)。1.0.2.什么时候使用单例模式?在程序中,单例模式经常用于只希望一个类只有一个实例,而不运行一

4、个类还有两个以上的实例。当然,在iOSSDK中,根据特定的需求,有些类不仅提供了单例访问的接口,还为开发者提供了实例化一个新的对象接口,例如,NSFileManager可以通过defaultManager方法返回相同的一个NSFileManager对象。如果需要新的一个NSFileManager实例对象,可以通过init方法。1.1.iOS中单例模式的实现方法iOS中单例模式的实现方式一般分为两种:Non-ARC(非ARC)和ARC+GCD。1)NON-ARC(非ARC)非ARC的实现方法如下所示:BVNo

5、nARCSingleton.h4////BVNonARCSingleton.h//SingletonPattern////CreatedbyBeyondVincenton13-5-9.//Copyright(c)2013年BeyondVincent.Allrightsreserved.//#import<Foundation/Foundation.h>@interfaceBVNonARCSingleton:NSObject@property(nonatomic,retain)NSString*t

6、empProperty;+(BVNonARCSingleton*)sharedInstance;@endBVNonARCSingleton.m////BVNonARCSingleton.m//SingletonPattern////CreatedbyBeyondVincenton13-5-9.//Copyright(c)2013年BeyondVincent.Allrightsreserved.//#import"BVNonARCSingleton.h"@implementationBVNonARCSingl

7、etonstaticBVNonARCSingleton*sharedInstance=nil;//获取一个sharedInstance实例,如果有必要的话,实例化一个+(BVNonARCSingleton*)sharedInstance{if(sharedInstance==nil){sharedInstance=[[superallocWithZone:NULL]init];}returnsharedInstance;}//当第一次使用这个单例时,会调用这个init方法。-(id)init{self=[s

8、uperinit];if(self){//通常在这里做一些相关的初始化任务5}returnself;}//这个dealloc方法永远都不会被调用--因为在程序的生命周期内容,该单例一直都存在。(所以该方法可以不用实现)-(void)dealloc{[superdealloc];}//通过返回当前的sharedInstance实例,就能防止实例化一个新的对象。+(id)allocWithZone:(NSZone*)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。