独生子
单例是一种经常使用的设计模式,它由在整个程序中共享的类的单个实例组成。
在下面的示例中,我们创建了一个 static
属性,该属性包含 Foo
类的实例。请记住,static
属性在类的所有对象之间共享,并且不能被子类化覆盖。
public class Foo
{
static let shared = Foo()
// Used for preventing the class from being instantiated directly
private init() {}
func doSomething()
{
print("Do something")
}
}
用法:
Foo.shared.doSomething()
一定要记住 private
初始化程序:
这可以确保你的单例真正独一无二,并通过访问控制防止外部对象创建自己的类实例。由于所有对象都带有 Swift 中的默认公共初始化程序,因此你需要覆盖 init 并将其设为私有。 KrakenDev