当前位置:编程学习 > wap >>

ios之单例模式

单例模式就是只有一个实例。自行实例化并向整个系统提供这个实例。
 
单例模式的创建
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 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,