单例模式入门

定义

单例模式确保一个类只有一个实例,并提供一个全局访问点。

单例模式的优点:

  • 提供了对唯一实例的受控访问
  • 在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例
  • 避免对资源的多重占用

单例模式的缺点:

  • 没有接口,不能继承,扩展有很大的困难

UML类图

Swift实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

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()