单件模式是日常开发中最常见的开发模式。单件即可以简化代码实现中对象的访问,同时可以提升代码可读性。
单件实现
在 swift
中实现单件模式也非常简单,如下:
class Singleton {
//单件实例
public static shared = Singleton()
//利用 private 私有化构建函数,确保实例对象必须通过单件进行访问
private init() {}
func foo() {
print("foo ... ok")
}
}
访问代码就可以是:
// 单件应用
Singleton.shared.foo()
从以上代码可以看出,单件实例初始化通常是不提供参数的。如果需要定制单件初始化配置,就需要额外做些操作了。
单件配置
为了解决单件初始化过程中的配置问题,可以这样进行实现。
//增加一个内部设置类
private class SingletonConfig {
//配置项
var name: String?
}
class Singleton {
//单件实例
public static shared = Singleton()
//类配置
private static config = SingletonConfig()
//类方法 - 进行单件初始化设置
public class func setup(_ name: String = "jay") {
Singleton.config.name = name
}
//利用 private 私有化构建函数,确保实例对象必须通过单件进行访问
private init() {}
func foo() {
//访问配置项
print("foo \(Singleton.config.name!)... ok")
}
}
使用的话,就可以是这样:
// 单件配置
Singleton.setup("mbox.dev")
// 单件应用
Singleton.shared.foo()