美文网首页
实现单例类

实现单例类

作者: Vijay_ | 来源:发表于2017-11-15 13:09 被阅读6次

注意静态方法不能调用对象属性 所以要把单例存在静态变量中

//.m文件
static VJSignle* signle_instance = nil;
//在app启动时调用
+(void)load{
    signle_instance = [[VJSignle alloc] init];;
}
+(instancetype)sharedSignle{
    
    return signle_instance;
}
+ (instancetype)alloc{
    if (signle_instance) {
        //抛异常
        [[NSException exceptionWithName:@"SignleInstanceError" reason:@"only alloc once" userInfo:nil] raise];
    }
    return [super alloc];
}
//.h文件
+(instancetype)sharedSignle;

更高效的单例

@implementation XXClass

+ (id)sharedInstance {
    static XXClass *sharedInstance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedInstance = [[self alloc] init];
    });
    return sharedInstance;
}

相关文章

  • 单例模式

    什么是单例模式? 一个类只允许创建一个实例,那个类就是单例类。这个模式就是单例模式。单例模式实现方式:饿汉式:实现...

  • 单例模式

    1.利用装饰器实现单例模式 2.修改new方法实现单例模式 3.利用元类实现单例模式 总结: 用装饰器和元类实现的...

  • python面试题-2018.1.30

    问题:如何实现单例模式? 通过new方法来实现单例模式。 变体: 通过装饰器来实现单例模式 通过元类来创建单例模式...

  • Kotlin中的单例实现原理

    1.使用Object关键字进行单例类声明 2.单例类的使用 3. 单例类的实现原理

  • Python实现单例模式

    1.使用__new__实现 2.使用装饰器实现单例 3.类装饰器实现单例 4.元类实现

  • kotlin-5、类与对象

    创建空类 构造函数 调用构造函数 继承 接口 实现接口 data类 最简单的单例 自己实现单例

  • Java学习笔记2

    Singleton / 不可变类 / 缓存不可变类 的实现 Singleton(单例类) 单例类用的地方很多,如果...

  • [python笔记] 单例的几种实现方式(线程安全)

    单例实现方式: 1.单例装饰器; 2.使用类; 3.使用元类 1.单例装饰器(...

  • Python两种方式实现单例模式

    装饰器模式实现单例 通过拦截类创建的是模式实现单例 测试结果

  • 单例模式和GCD单例实现

    1、传统单例模式2、GCD单例模式3、用宏实现GCD单例模式4、用宏实现GCD单例模式,名称随类名变化而变化 单例...

网友评论

      本文标题:实现单例类

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