基本概念:
单例设计模式是运用较为普遍,广泛且较为简单的设计模式之一,它的设计原理是
始终返回一个实例,即一个类始终只有一个实例。
</pre><pre name="code" class="objc">#import "Manager.h"
@interface Manager ()
{
}
@end
@implementation Manager
// 两种方式只要使用其中一种
+ (id)defaultManager
{
// //1. 第一种方式。静态变量只会初始化一次
static Manager *sharedInstance = nil;
//每次调用defaultManager的时候都返回同一个对象
if (sharedInstance == nil) {
sharedInstance = [[Manager alloc] init];
}
//只会执行一次,线程安全
// 2. 第二种方式
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[Manager alloc] init];
});
return sharedInstance;
}
创建两个对象,打印结果表明是同一个对象:
Manager *manager = [Manager defaultManager];
NSLog(@"%@", manager);
Manager *manager2 = [Manager defaultManager];
NSLog(@"%@", manager2);
打印结果:
2014-08-28 22:37:14.168 SingletonApp[4170:230587] <Manager: 0xb912b60>
2014-08-28 22:37:14.168 SingletonApp[4170:230587] <Manager: 0xb912b60>