标签:
单例模式就是只有一个实例。自行实例化并向整个系统提供这个实例。
单例模式的创建
1、首先在.h文件中
[plain]
#import <Foundation/Foundation.h>
@interface SingletonClass : NSObject
+ (id) sharedInstance;
@end
2、在.m文件中
[plain]
#import "SingletonClass.h"
@implementation SingletonClass
static SingletonClass * getInstance;
+ (id) sharedInstance {
@synchronized ([SingletonClass class]) {
if (getInstance == nil) {
getInstance = [[SingletonClass alloc] init];
}
}
return getInstance;
}
@end
这里是类SingletonClass为例子。
单例模式使用
[plain
[[SingletonClass sharedInstance] xxx];
单例的销毁
销毁也就是对单例的释放,在应用终止的时候实现,delegate方法如下。
[plain]
- (void)applicationWillTerminate:(UIApplication *)application
{
[SingletonClass destroyDealloc];
}
销毁方法
[plain]
+ (void)destroyDealloc
{
if ([getInstance retainCount] != 1)
return;
[getInstance release];
getInstance = nil;
}
单例的总结
好处:
1.实例控制:Singleton 会阻止其他对象实例化其自己的 Singleton 对象的副本,从而确保所有对象都访问唯一实例。
2.灵活性:因为类控制了实例化过程,所以类可以更加灵活修改实例化过程
缺点:
单例模式使得对象变成了全局的,降低了每个单独模块的灵活性。
ios之单例模式
标签:
原文地址:http://www.cnblogs.com/huangzs/p/5070492.html