Swift 单例模式:普通实现与 GCD 实现
Swift 单例模式实现
单例模式是一种常用的软件设计模式,用于确保一个类只有一个实例,并提供全局访问点。在 Swift 中,实现单例模式有多种方式,将介绍两种常见的实现方法:普通实现和 GCD 实现。
1. 普通单例实现
普通单例实现使用静态属性和私有初始化器来确保类的唯一性。
class Singleton {
static let shared = Singleton()
private init() {}
}
在上面的代码中:
shared
是一个静态属性,用于存储单例实例。init()
是一个私有初始化器,防止外部实例化该类。
2. GCD 单例实现
GCD (Grand Central Dispatch) 单例实现利用了 GCD 的线程安全特性,确保在多线程环境下也能安全地创建和访问单例实例。
class SingletonGCD {
static let shared = SingletonGCD()
private init() {}
static var sharedInstance: SingletonGCD {
struct Static {
static var onceToken: dispatch_once_t = 0
static var instance: SingletonGCD? = nil
}
dispatch_once(&Static.onceToken) {
Static.instance = SingletonGCD()
}
return Static.instance!
}
}
在上面的代码中:
- 使用
dispatch_once
函数确保初始化代码只执行一次。 Static
结构体用于存储单例实例和dispatch_once_t
标记。
总结
介绍了两种常见的 Swift 单例模式实现方法:普通实现和 GCD 实现。开发者可以根据实际情况选择合适的实现方式。
88.63KB
文件大小:
评论区