码迷,mamicode.com
首页 > 移动开发 > 详细

ios之单例模式

时间:2015-12-23 17:40:02      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:

单例模式就是只有一个实例。自行实例化并向整个系统提供这个实例。

 
单例模式的创建
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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!