重温-单例模式

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

1. 单例设计模式(Singleton)

* 保证某个类创建出来的对象永远只有一个

2. 作用

* 节省内存开销。

* 如果有些数据,整个程序中都用得上,只需要使用同一份资源(保证大家访问的数据是相同一致的)

* 一般来说工具类设计为单例模式合适

3. 实现

* MRC

* ARC

SoundTool.h

1#import<Foundation/Foundation.h>23@interfaceSoundTool : NSObject <NSCopying>45+(instancetype)shareSoundTool;67@end

View Code

SoundTool.m

#import"SoundTool.h"@implementationSoundToolstaticid_instance =nil;+ (instancetype)allocWithZone:(struct_NSZone *)zone

{if(_instance ==nil) {staticdispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

_instance=[super allocWithZone:zone];

});

}return_instance;

}+(instancetype)shareSoundTool

{return[[self alloc] init];

}-(instancetype)init

{staticdispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

_instance=[super init];

});return_instance;

}+ (instancetype)copyWithZone:(struct_NSZone *)zone

{return_instance;

}+ (instancetype)mutableCopyWithZone:(struct_NSZone *)zone

{return_instance;

}//以下三个为非ARC使用- (onewayvoid)release

{

}-(instancetype)retain

{return_instance;

}-(NSUInteger)retainCount

{return1;

}

View Code

4. 建议包装成宏使用

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航