一、Objective-C中的单例设计
五年前,我曾经在《iOS开发中的设计模式-单例模式》中介绍过Objective-C中的单例设计,可以看到,OC中的单例实现还是比较复杂的,需要考虑的场景也很多。
二、Swift中的单例设计
相比较OC,Swift中的单例设计要简单得多,如下:
代码语言:javascript复制class SwiftSingleton {
static let shared = SwiftSingleton();
private init() {}
}
我们接下来分析一下:
static关键字表示shared变量是一个类型变量,其生命周期与应用程序同步。
let表示这是一个常量,一旦被赋值就不会更改,保证了单例对象的唯一性。
将SwiftSingleton的init初始化方法私有化,保证了该函数在SwiftSingleton外部不会被调用。也就是说,要想获取SwiftSingleton的实例对象,就必须要通过SwiftSingleton.shared来获取,直接通过SwiftSingleton()是获取不到的。
以上。