单例模式

单例模式的作用

可以保证在程序运行过程,一个类只有一个实例,而且该实例易于供外界访问
从而方便地控制了实例个数,并节约系统资源

单例模式的使用场合

在整个应用程序中,共享一份资源(这份资源只需要创建初始化1次)
<p>单例模式在ARC\MRC环境下的写法有所不同,需要编写2套不同的代码 可以用宏判断是否为ARC环境 </p>

<pre>#if __has_feature(objc_arc)
//ARC

else

//MRC

endif</pre>

<p>提供1个类方法让外界访问唯一的实例 </p>

<pre>+ (instancetype)sharedMusicTool {
    if (_instance == nil) { // 防止频繁加锁
        @synchronized(self) {
            if (_instance == nil) { // 防止创建多次
               _instance = [[self alloc] init];
            }
        }
    }
    return _instance;
}
+(id)allocWithZone:(struct _NSZone *)zone {

static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    _instance = [super allocWithZone:zone];
});
return _instance;

}</pre>

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

相关阅读更多精彩内容

  • 单例模式(SingletonPattern)一般被认为是最简单、最易理解的设计模式,也因为它的简洁易懂,是项目中最...
    成热了阅读 9,875评论 4 34
  • 单例模式的作用 可以保证在程序运行过程,一个类只有一个实例,而且该实例易于供外界访问 从而方便地控制了实例个数,并...
    JonesCxy阅读 2,924评论 0 0
  • 消失的霓虹 文:recycler 天已黑,冬天的夜晚比其他季节来的更早一些。路上的街灯个别还亮着,刚下班的人还没有...
    Recycler阅读 3,517评论 0 0
  • 你的手机里有什么? 前些天放学回寝室,室友骑车在前面,刚好那个教学楼也下课了。我们知道学生下课都是三两成群,成功躲...
    小烈呐阅读 4,132评论 2 0
  • 从云台山下山第一天,在床上躺到了十点,心中火焰熊熊燃烧着,有幸福,有痛苦。好吧,我终于体悟到来自灵魂的爱是全然的喜...
    文争阅读 1,814评论 0 1

友情链接更多精彩内容