定义
单例模式确保一个类只有一个实例,并提供一个全局访问点。
单例模式的优点:
- 提供了对唯一实例的受控访问
- 在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例
- 避免对资源的多重占用
单例模式的缺点:
UML类图
Swift实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| class SingletonPattern { static let sharedInstance = SingletonPattern() private init(){} }
let single1 = SingletonPattern.sharedInstance //打印single1内存地址 print(Unmanaged.passUnretained(single1).toOpaque())
let single2 = SingletonPattern.sharedInstance //打印single2内存地址 print(Unmanaged.passUnretained(single2).toOpaque())
//下面一句直接创建编译出错 //let single2 = SingletonPattern()
|