应用场景
在程序运行周期中,有一个可以全局可以调用的对象。这时,需要使用单例模式实现。
API 及语言
Swift
核心逻辑/代码
单利需要满足以下几点:
- 可以全局调用 -- static 修饰这个类创建的对象,因为被 staitc 修饰的对象会存放在全局区,在整个程序的生命周期中,这个对象不会被动销毁
- 全局有且只有这一个对象 -- 初始化函数设置为 private,保证这个单例的对象只能被自身创建。
为什么在单例中用 static 修饰?
- 首先 static 修饰的属性是全局变量属性,因为被 static 修饰的变量,可以直接通过类名/结构体名等访问 static 修饰的属性
- 全局变量属性默认都是懒加载。对于全局变量来说,显然程序一启动就加载的方式不合适,于是,还是在需要的时候再进行加载。
示例代码
// 创建单例
class Base {
static let `default` = Base()
private init() {}
var age = 4
}
// 调用
Base.default.age = 5
网友评论