Objective-C更适合的单例实现(iOS设计模式)
2012-10-25 13:42
363 查看
创建单例的步骤:
声明一个单例对象的静态实例,并初始化为nil。
在该类的类工厂方法(名称类似于“sharedInstance”或“sharedManager”)中生成该类的一个实例,但仅当静态实例为nil的时候。
重载allocWithZone:方法,确保当用户试图直接(而不是通过类工厂方法)分配或初始化类的实例时,不会分配出另一个对象。
实现基本协议方法:copyWithZone:、release、retain、retainCount、和autorelease,以保证单例的状态。
实现单例的代码例子:(iOS设计模式 page83)
声明一个单例对象的静态实例,并初始化为nil。
在该类的类工厂方法(名称类似于“sharedInstance”或“sharedManager”)中生成该类的一个实例,但仅当静态实例为nil的时候。
重载allocWithZone:方法,确保当用户试图直接(而不是通过类工厂方法)分配或初始化类的实例时,不会分配出另一个对象。
实现基本协议方法:copyWithZone:、release、retain、retainCount、和autorelease,以保证单例的状态。
实现单例的代码例子:(iOS设计模式 page83)
#import "Singleton.h" @implementation Singleton static Singleton *sharedSingleton = nil; + (Singleton *)sharedInstance { if (sharedSingleton == nil) { sharedSingleton = [[super allocWithZone:NULL] init]; } return sharedSingleton; } + (id)allocWithZone:(NSZone *)zone { return [[self sharedInstance] retain]; } - (id)copyWithZone:(NSZone *)zone { return self; } - (id) retain { return self; } - (NSUInteger) retainCount { return NSUIntegerMax; } - (void)release { } - (id) autorelease { return self; } @end
相关文章推荐
- 用例子说明MVC 设计模式(以Objective-C 实现)
- Objective-C 编程之道 iOS设计模式解析--第22章 代理
- iOS开发那些事-iOS常用设计模式–委托模式案例实现
- 设计模式之单一职责原则(iOS开发,代码用Objective-C展示)
- 【读书笔记】Objective-C编程之道:iOS设计设计模式解析(1)-原型模式
- 用例子说明MVC 设计模式(以Objective-C 实现)
- IOS之Objective-C学习 代理设计模式
- iOS学习(二十八)Objective-C 代理设计模式
- Objective-C(iOS)严格单例模式正确实现
- 设计模式之装饰模式(iOS开发,代码用Objective-C展示)
- 论坛源码推荐(8月14日):基于高德地图iOS SDK的轨迹回放库,用Swift实现的设计模式
- 经典设计模式-iOS的实现
- iOS的Objective-C的工厂设计模式详解
- IOS-3-Objective-C语言:单例设计模式
- iOS购物车设计模式浅析及代码实现
- 用例子说明MVC 设计模式(以Objective-C 实现)
- iOS 设计模式-Block实现代理的逻辑
- iOS开发那些事-iOS常用设计模式–委托模式案例实现 推荐
- 解析iOS应用开发中对设计模式中的抽象工厂模式的实现
- iOS应用设计模式开发中职责链(责任链)模式的实现解析