单例模式的设计
来源:互联网 发布:微信版邀请函制作软件 编辑:程序博客网 时间:2024/05/22 03:13
单例模式可以保证在项目运行过程中,保证只有一个对象,只分配一块内存,防止不必要的内存开支,并且单例可以保证在项目中的全局操作,即使在一个.m文件中创建了单例对象,开启了单例对象的任务,但是在另外一个.m文件中可以对创建的单例对象进行操作,比如关闭单例任务等
下面简单说下创建单例:
//用来保存唯一的单例对象static id _share;/** * alloc方法内部会调用这个方法 * 确保一个对象只会创建一次 */+(instancetype)allocWithZone:(struct _NSZone *)zone{ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ @synchronized(self) {//防止频繁加锁 if (_share == nil) {//防止创建多次 _share = [super allocWithZone:zone]; } } }); return _share;}+(instancetype)shareTool{ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ _share = [[self alloc] init]; }); return _share;}-(instancetype)copyWithZone:(NSZone *)zone{ return _share;}
在创建单例的.h文件提供接口,可以方便外界调用.对单例对象进行操作.
但是在多线程的时候,一个单例对象还没有创建完成,第二个创建又开始创建,就会造成创建两个对象,所以在写单例的时候要根据你的项目考虑是否添加互斥锁.保证只能创建一个对象,在下次创建对象的时候,已经有一个对象存在,不需要再次创建.
1 0
- 单例模式的设计
- 单例模式的设计
- 单例的设计模式
- 设计模式 单例模式 优雅的单例模式
- Unity的设计模式--单例模式,
- 简单的设计模式-单例模式
- java的设计模式---单例模式
- 设计模式的学习-单例模式
- 常用的设计模式----单例模式
- java的设计模式---单例模式
- Android的设计模式-单例模式
- java的设计模式--单例模式
- 设计模式--单例设计模式的思考
- Android设计模式之单例设计模式的优缺点
- 设计模式--单例
- 单例设计模式
- 设计模式----单例
- 单例设计模式
- 第二周项目2-就拿胖子说事
- android 用GridView加载Bitmap 内存溢出问题总结
- Java集合总结之Collection整体框架
- 为子Activity添加左向向上返回剪头按钮
- JSF框架模式
- 单例模式的设计
- Android SDK 国内镜像
- C++实验1-求两数的和及差
- PixInsight星空图片处理大致流程
- NoSQL数据库类型
- C++实验1-项目3(1)
- 网银u盾工作原理
- Editing with the geodatabase API
- 第二周项目3-小试循环