Swift 单例

作者: 我为双鱼狂 | 来源:发表于2021-06-07 20:42 被阅读0次

应用场景

在程序运行周期中,有一个可以全局可以调用的对象。这时,需要使用单例模式实现。

API 及语言

Swift

核心逻辑/代码

单利需要满足以下几点:

  • 可以全局调用 -- static 修饰这个类创建的对象,因为被 staitc 修饰的对象会存放在全局区,在整个程序的生命周期中,这个对象不会被动销毁
  • 全局有且只有这一个对象 -- 初始化函数设置为 private,保证这个单例的对象只能被自身创建。

为什么在单例中用 static 修饰?

  1. 首先 static 修饰的属性是全局变量属性,因为被 static 修饰的变量,可以直接通过类名/结构体名等访问 static 修饰的属性
  2. 全局变量属性默认都是懒加载。对于全局变量来说,显然程序一启动就加载的方式不合适,于是,还是在需要的时候再进行加载。

示例代码

// 创建单例
class Base {
    static let `default` = Base()
    
    private init() {}
    
    var age = 4
}

// 调用
Base.default.age = 5

相关文章

网友评论

    本文标题:Swift 单例

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