Swift 3中的Singleton
什么是单例?
Singleton是一种设计模式,在该模式下,一个对象只能在您的应用程序中实例化一次。 该对象只有一个副本,并且由任何其他对象全局共享和使用。 创建单例的唯一目的是允许您访问它的共享属性和方法,并使它可以全局访问。 当您只想创建一个对象的实例时,此设计模式很有用。 让我们看一些我们熟悉但完全是单例的示例:
- sharedURLSession
- defaultFileManager
- standardUserDefaults
实现单例
单例类{
静态让sharedInstance = Singleton()
}
这一行代码是实现单例的全部内容。 我们将static
放进去是因为它是一种type属性,它的功能是仅创建一个对象的实例,并防止其方法被覆盖。 使用let
将保证sharedInstance
的值不会改变。
更好的方法
最终课程Singleton {
静态让sharedInstance = Singleton()
私人init(){}
}
我们第一次如何实现单例存在一些问题。 首先,我们需要确保不能使用final
关键字修改单例或子类。 其次,我们需要防止其他对象通过使用private init
创建自己的singleton类实例。 如果我们不使用私有初始化器,则singleton类将创建它自己的默认公共初始化器。
需要注意的重要一点是, static
属性和方法默认情况下是延迟初始化的,这意味着直到调用它之前都不会实例化它,因此提供了一些优化。