标签:
单例设计模式
基本概念
单例设计模式运用较为普遍、广泛且较为简单的设计模式之一,它的设计原理是始终返回一个实例,即一个类始终只有一个实例。
创建单例的基本步骤
单例基本实现
static UserContext *segtonInstance = nil; @implementation UserContext +(id)shareUserContext{ @synchronized(self){ //线程安全 if (segtonInstance == nil) { segtonInstance = [[[self class] alloc] init]; } } return segtonInstance; } //重写 allocWithZone: 方法 +(id)allocWithZone:(NSZone *)zone{ if (segtonInstance == nil) { segtonInstance = [super allocWithZone:zone]; } return segtonInstance; } - (id)copyWithZone:(NSZone *)zone { return segtonInstance; }
//覆盖 release,autorelease,retain,retainCount 方法方法 //返回本身 -(id)retain { return self; } -(NSInteger)retainCount { return UINT_MAX; } -(id)autorelease{ return self; } -(oneway void)release { }
//验证单例 UserContext *user1 = [UserContext shareUserContext]; UserContext *user2 = [UserContext shareUserContext]; UserContext *user3 = [[UserContext alloc] init]; UserContext *user4 = [[UserContext alloc] init]; UserContext *user5 = [[UserContext copy]; NSLog(@"%@",user1); NSLog(@"%@",user2); NSLog(@"%@",user3); NSLog(@"%@",user4); NSLog(@"%@",user5);
标签:
原文地址:http://www.cnblogs.com/ShaoYinling/p/4586988.html