单例模式(Singleton)

单例模式:整个程序的一个类只能有一个实例对象:(UIApplication、NSUserDefaults等都是IOS中的系统单例)

1.物理设备  eg:打印机

2.不可多个同时存在的资源  eg:数据库

单例的写法:

这是第一种,也是最简单、最常用的一种:

 #import "FileOpration.h" 
  
 static FileOpration *instance = nil; //静态变量,从定义开始到整个程序结束 
  
 @implementation FileOpration  
  
 + (instancetype)sharedFileOpration{ 
       if (instance == nil) {
     instance = [[FileOpration alloc]init];
     }
    return instance;
 }  

 @end

第二种写法,加入了线程,以及重写alloc方法:

+ (FileOperation *)sharedManager{ 
  static FileOperation *instance = nil; 
  static dispatch_once_t predicate; 
  dispatch_once(&predicate, ^{ 
      instance = [[self alloc] init]; 
  }); 
  return ManagerInstance; 
}

/* 重写alloc方法,在调用alloc方法的时候实际上是默认调用allocWithZone */
+ (instancetype)allocWithZone:(struct _NSZone *)zone{ 
  return [self sharedOperation];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容