Swift Singleton可以成为具有纯类函数的类

Som*_*Man 5 singleton swift

这感觉就像讨论在几个Swift迭代之前停止了,但我很好奇,在讨论中,从未建议(或者如果我从未看过它)单例可能只是一个具有纯类函数的类,例如 -

class MySingleton {

    private static var someVar: String?
    private static var someOtherVar: SomeType?

    class func start() {
        // etc...
    }

    class func doSomething() {
        // etc...
    }

    // etc, etc...
}
Run Code Online (Sandbox Code Playgroud)

我们不应该这样做有什么好的理由吗?我什么都想不到.

Dun*_*n C 0

如果一个对象从未被实例化,那么它就不是单例。不存在对象的实例,而不仅仅是单个实例。

这样做本身并没有什么错,但是有什么好处呢?

编辑

让我印象深刻的是,真正的比较是在只有类方法和全局函数的类之间。

在此比较中,我看到的好处是名称间距。创建类方法时,必须使用类的名称来限定函数调用,因此您可以说

SomeClass.someMethod()
Run Code Online (Sandbox Code Playgroud)

或者

SomeOtherClass.someMethod()
Run Code Online (Sandbox Code Playgroud)

这是两个不同的功能,很明显它们是不同的功能。

对于全局函数,你只需说

someMethod()
Run Code Online (Sandbox Code Playgroud)

如果将来您合并了其他人的也具有全局函数的代码,someMethod()您将收到有关重复函数的编译器错误,并且必须解决它。