美文网首页
Swift3.0 单例实战

Swift3.0 单例实战

作者: 风与鸾 | 来源:发表于2017-05-24 17:31 被阅读28次

概述

整个应用生命周期中,只存在唯一一个实例对象的类被称作单例,所以的模块共同使用这一个对象的设计叫做单例模式

单例模式的特点和创建方式:

  • 实例对象唯一,所以多个模块共同使用保证了数据唯一性。
  • 有较强的灵活性。
  • final关键字修饰的class、var、func标示不可被操作,继承,重写非常适合优化单例。
  • Swift3.0开始放弃了dispatch_once,创建单例方式有:
final class LLNetwork: NSObject {
    static let shareInstace = LLNetwork.init()
    // 保证只有当前才能访问
    private override init(){}
}

OC单例

  • 方法一
+ (nonnull instancetype)sharedInstance {
    static id instance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        instance = [[self alloc] init];
    });
    return instance;
}
  • 方法二
+ (nonnull instancetype)sharedInstance {
    static id instance = nil;
    @synchronized (self) { //保证线程安全
        if (!instance) {
            instance = [[self alloc] init];
        }
    }
    return instance;
}

总结

单例保证了数据在应用运行期间的唯一性,减少了重复内存的损耗,如果单例本身内存占用过大时,要重新考虑这个模式是否适合了。另一方面,单例的访问也存在着多线程安全的问题,这需要我们合理的使用线程锁来保证单例的安全性了。

相关文章

  • Swift3.0 单例实战

    概述 整个应用生命周期中,只存在唯一一个实例对象的类被称作单例,所以的模块共同使用这一个对象的设计叫做单例模式 单...

  • Swift3.0 单例

    OC单例: Swift 3.0

  • Swift3.0之单例

    前言 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中...

  • Swift3.0 单例模式

    常见的有这么4种方法 第一种简单到爆的 final关键字的作用是这个类或方法不希望被继承和重写 第二种 完全是OC...

  • 单例模式-实战

    单例模式:前面的一篇文章,曾经对单例模式进行了一个基本的认知 今天通过代码来一步步优化单例模式 demo1 dem...

  • Android开发学习——Day10(单例设计模式&实战:扑克游

    学习目的 1.学习单例设计模式 2.完善并练习实战项目:扑克游戏 学习过程 了解单例设计模式,并简单运用。完善之前...

  • [Swift3.0]单例模式(学习)

    swift 3.0中废弃了dispatch_once,这里只记录一个标准的单例写法,具体相关的内容,可以看看这篇文...

  • 单例模式Singleton

    这是我在学习《Android源码设计模式解析和实战》过程中对单例模式作一个记录。方便以后随时翻看。单例模式是应用最...

  • 网络加载框架 - Retrofit-KT

    实战时候使用KT,进行Retrofit网络请求:使用单例模式, 成员变量private val retrofit:...

  • Swift实战-单例模式

    单例模式Singleton具有如下优点: 多个模块共用同一个对象,保证了数据的唯一性统一逻辑功能,具有较高的灵活性...

网友评论

      本文标题:Swift3.0 单例实战

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