iOS 单例模式

一、介绍

iOS单例模式(Singleton)单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。

1、单例模式的要点:

一是某个类只能有一个实例;
二是它必须自行创建这个实例;
三是它必须自行向整个系统提供这个实例。

2、单例模式的优点:

1.实例控制:Singleton 会阻止其他对象实例化其自己的 Singleton 对象的副本,从而确保所有对象都访问唯一实例。  
2.灵活性:因为类控制了实例化过程,所以类可以更加灵活修改实例化过程 IOS中的单例模式

二、实现单例

单例模式写法:
我们知道,创建对象的步骤分为申请内存(alloc)、初始化(init)这两个步骤,我们要确保对象的唯一性,因此在第一步这个阶段我们就要拦截它。
当我们调用alloc方法时,oc内部会调用allocWithZone这个方法来申请内存,我们覆写这个方法,然后在这个方法中调用shareInstance方法返回单例对象,这样就可以达到我们的目的。
拷贝对象也是同样的原理,覆写copyWithZone方法,然后在这个方法中调用shareInstance方法返回单例对象。

static SLSingleton* _instance = nil;
+(instancetype)shareInstance
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _instance = [[super allocWithZone:NULL] init];
    });
    return _instance;
}

+(id)allocWithZone:(struct _NSZone *)zone
{
    return [SLSingleton shareInstance];
}

-(id) copyWithZone:(struct _NSZone *)zone
{
    return [SLSingleton shareInstance];
}

参考链接:
IOS 单例设计模式解读
Objective-c单例模式的正确写法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 简介: 单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统...
    RunnerFL阅读 703评论 0 0
  • 单例介绍 本文源码下载地址 1.什么是单例 说到单例首先要提到单例模式,因为单例模式是单例存在的目的 单例模式是一...
    雷鸣1010阅读 3,661评论 0 19
  • iOS设计模式——单例模式http://blog.csdn.net/lovefqing/article/detai...
    LV大树阅读 795评论 0 1
  • 宁夏英力特煤业有限公司
    培港阅读 151评论 0 0
  • 今天打开空间,发现好几个朋友用语音发说说,打开听了还真是不错的!有个性,有魅力! 听着这个像逻辑思维一样,每天一段...
    安梓阅读 1,910评论 0 1

友情链接更多精彩内容