獨生子

單例是一種經常使用的設計模式,它由在整個程式中共享的類的單個例項組成。

在下面的示例中,我們建立了一個 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