首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

iOS设计形式之单例模式

2013-10-31 
iOS设计模式之单例模式单例模式是iOS常用设计模式中的一种。单例设计模式的作用是使得这个类的一个对象成为

iOS设计模式之单例模式

单例模式是iOS常用设计模式中的一种。单例设计模式的作用是使得这个类的一个对象成为系统中的唯一实例,因此需要用一种唯一的方法去创建这个对象并返回这个对象的地址。那么,我们何时使用单例模式呢?1、类只能有一个实例,而且必须从一个为人熟知的访问点对其访问。2、这个唯一的实例只能通过子类化进行扩展,而且扩展的对象不会破坏客户端代码。

那么用Objective-C如何实现单例模式呢?下面我们来新建一个Singleton类,在Singleton.h中实现如下

@implementation Singletonstatic Singleton * sharedSingleton = nil;+ (Singleton *) sharedInstance{    if (sharedSingleton == nil) {        sharedSingleton = [[super allocWithZone:NULL] init];    }    return sharedSingleton;}+ (id) allocWithZone:(struct _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

也许你注意到了,我重载了allocWithZone:,保持了从sharedInstance方法返回的单例对象,使用者哪怕使用alloc时也会返回唯一的实例(alloc方法中会先调用allocWithZone:创建对象)。而retain等内存管理的函数也被重载了,这样做让我们有了把Singleton类变得“严格”了。


热点排行