概念:
Typical Class:多个实例
Singleton :单个实例
优点:
全局变量\公用组件可以快速实现 api
实现:
- 声明一个单例对象的静态实例,并初始化为 nil
- 在该类的类工厂方法(名称类似
shareInstance
或者sharedManager
)中生成该类的一个实例,但仅当静态实例为 nil 的时候 - 重载
-allocWithZone
确保用户视图直接分配或者初始化实例时,不会分配出另外一个对象 - 实现基本协议方法:
copyWithZone
release
retain
retainCount
autorelease
,以保证单例的状态
应用场景:
[UIApplication sharedApplication];
[NSNotificationCenter defaultCenter];
[NSUserDefaults standardUserDefaults];
[UIAccelerometer sharedAccelerometer];
[NSURLSession sharedSession];