Swift4.0 中实现单例的三种方式

方式1(静态常量)

class MyClass {

    static let shared = MyClass()
    private init() { }
}

简洁的不要不要,我最喜欢使用此方式实现单例

方式2(内部结构体)

class MyClass {

    static var shared: MyClass {

        struct Static {
            static let sharedInstance = MyClass()
        }

        return Static.sharedInstance;
    }

    private init() { }
}

看起来是方式1的复杂版(变异版),在开发中我基本上不使用过此方式

方式3(全局变量)

fileprivate let sharedInstance = MyClass()
class MyClass {

    static var shared: MyClass {
        return sharedInstance
    }

    fileprivate init() { }
}

你可能感兴趣的:(Swift4.0 中实现单例的三种方式)