iOS 设计模式之单例模式

作者: 小橘爷 | 来源:发表于2016-03-19 15:30 被阅读247次

如果觉得我写的还不错,请关注我的新浪微博@小橘爷,最新文章即时推送~

单例模式

单例模式的作用是解决“应用中只有一个实例”的一类问题。

Objective-C 实现原理

单例模式一般会封装一个静态属性,并提供静态实例的创建方法。

实现的参考代码如下:

@interface Singleton : NSObject
// 获取单例的方法
+ (Singleton *)sharedManager;
@end

#import "Singleton.h"
@implementation
// 创建静态变量
static Singleton *sharedManager = nil;
+ (Singleton *)sharedManager
{
    // GCD 提供的结构体,使用时将它的地址传给 dispatch_once 函数
    static dispatch_once_t onceToken;
    // dispatch_once 函数,作用是在整个程序的生命周期中只执行一次代码块,并且它能够记录该代码块是否被调用过
    dispatch_once(&onceToken, ^{
        sharedManager = [[self alloc] init];
    }];  
    return sharedManager;
}
@end

具体的实现大体就是这些了。其中,dispatch_once 函数不仅意味着代码仅会被运行一次,而且还意味着此运行还是线程同步的。当我们使用了 dispatch_once 函数时,就不再需要使用互斥锁(@synchronized)了~

相关文章

网友评论

    本文标题:iOS 设计模式之单例模式

    本文链接:https://www.haomeiwen.com/subject/nocqlttx.html