单例模式

2016-10-13  本文已影响0人  彼岸的黑色曼陀罗

单例模式(掌握)

创建一个静态变量:分配存储空间
static DownloadTool *_instance;
@synchronized(self){
    if(_instance == nil){
_instance = [super allocWithZone:zone];
                }
    return _instance
}       
提供一个类方法
规范:share+类名 | share | default |manager
+(instancetype)shareDownloadTool{
    return [[self alloc]init];
}
-(id)copyWithZone:(NSZone*)zone{
 return _instance;
}
-(id)mutableCopyWithZone:(NSZone*)zone{
 return _instance;
}

简洁单例模式(不完全单例模式)

+(instancetype)shareTool{
  static Tool * _instance;
  static dispatch_once_t onceToken;
  dispatch_once(&onceToken,^{
   _instance = [[self alloc]init];
})
   return _instance
}
上一篇 下一篇

猜你喜欢

热点阅读