iOS

单例 - iOS

2019-02-25  本文已影响0人  survivorsfyh

Foundation 和 Application Kit 框架中的一些类只允许创建单件对象,即这些类在当前进程中的唯一实例.
举例来说,NSFileManager 和 NSWorkspace 类在使用时都是基于进程进行单件对象的实例化.当向这些类请求实例的时候,它们会向您传递单一实例的一个引用,如果该实例还不存在,则首先进行实例的分配和初始化.单件对象充当控制中心的角色,负责指引或协调类的各种服务.如果类在概念上只有一个实例(例如:NSWorkspace),就应该产生一个单件实例,而不是多个实例;
如果未来可能有多个实例,可以使用单件实例机制,而不是工厂方法或函数.

+ (instancetype)shareInstance {
    static YHAccessAuthorization *shareInstance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        shareInstance = [[self alloc] init];
    });
    
    return shareInstance;
}
上一篇下一篇

猜你喜欢

热点阅读