单例模式 - Singleton
优质
小牛编辑
126浏览
2023-12-01
单例模式确保每个指定的类只存在一个实例对象,并且可以全局访问那个实例。一般情况下会使用延时加载的策略,只在第一次需要使用的时候初始化。
注意:在 iOS 中单例模式很常见,NSUserDefaults.standardUserDefaults()
、 UIApplication.sharedApplication()
、 UIScreen.mainScreen()
、 NSFileManager.defaultManager()
这些都是单例模式。
你可能会疑惑了:如果多于一个实例又会怎么样呢?代码和内存还没精贵到这个地步吧?
某些场景下,保持实例对象仅有一份是很有意义的。举个例子,你的应用实例 (UIApplication
),应该只有一个吧,显然是指你的当前应用。还有一个例子:设备的屏幕 (UIScreen
) 实例也是这样,所以对于这些类的情况,你只想要一个实例对象。
单例模式的应用还有另一种情况:你需要一个全局类来处理配置文件。我们很容易通过单例模式实现线程安全的实例访问,而如果有多个类可以同时访问配置文件,那可就复杂多了。