哪些情况下需要用?哪些情况下不适合用?
全局数据管理对象,例如数据库Handler,DAO,播放器对象等等。总之就是在整个应用生命周期内只能有一个实例或者只需要一个实例的类可以做成单例。
相对地其他情况当然就是不方便使用了。
UIApplication:当程序启动的时候,会调用UIApplicationMain方法,在该方法中,会实例化一个UIApplication对象,之后在程序中的任意地方调用sharedApplication方法都将返回一个与当前应用程序相关的UIApplication实例(UIApplicationMain方法中创建的UIApplication单例)。
其他的还有:
- NSUserDefaults 的standardUserDefaults统一管理用户配置文件
- NSFileManager的defaultManager统一负责物理文件的管理
- NSNoficationCenter中defaultCenter负责全局的消息分发。
具体的实践可以参考:http://sjpsega.com/blog/2014/05/25/singleton-in-ios/