[Swift 3.0] Fundamental & Algorithm

Swift 2.0 - Singleton(单例模式)

2016-04-22  本文已影响91人  sunlitamo

Overview:
Singleton设计模式
单例模式使一个类在整个应用生命周期内只存在一个实例,并且有一个全局的方法来访问这个实例。在单例模式下,当第一次访问某个类的实例时,该类通常使用延迟加载的方式创建该类的单例。

Singleton的好处
有些情况下,只需要类实例化一次,且仅有一次。比如这种情况:
在一个应用的生命周期里,应用(Application)设备的主屏幕是只存在一份的,那么你当然希望应用和设备屏幕的实例有且只有一个。或者你需要一个全局的处理配置的类,这样能线程安全的访问配置文件,避免多个配置类同时访问一个配置文件。这些就是单例模式的好处所在。

Example:

import Foundation class Singleton { //单例模式:静态常量 static let sharedInstance = Singleton() }
在Swift中,Singleton的实现变得十分方便简洁,苹果赋予了其线程安全及延迟加载的特性,以确保sharedInstance能且只能被初始化一次。

如果你需要在对象初始化之前进行一些初期设置,你也可以把相关代码放入该静态常量的闭包中加以实现:
import Foundation class Singleton { //单例模式:静态常量 static let sharedInstance: Singleton = { let instance = Singleton() //setup code return instance}() }

上一篇 下一篇

猜你喜欢

热点阅读