这感觉就像讨论在几个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)
我们不应该这样做有什么好的理由吗?我什么都想不到.
如果一个对象从未被实例化,那么它就不是单例。不存在对象的实例,而不仅仅是单个实例。
这样做本身并没有什么错,但是有什么好处呢?
让我印象深刻的是,真正的比较是在只有类方法和全局函数的类之间。
在此比较中,我看到的好处是名称间距。创建类方法时,必须使用类的名称来限定函数调用,因此您可以说
SomeClass.someMethod()
Run Code Online (Sandbox Code Playgroud)
或者
SomeOtherClass.someMethod()
Run Code Online (Sandbox Code Playgroud)
这是两个不同的功能,很明显它们是不同的功能。
对于全局函数,你只需说
someMethod()
Run Code Online (Sandbox Code Playgroud)
如果将来您合并了其他人的也具有全局函数的代码,someMethod()您将收到有关重复函数的编译器错误,并且必须解决它。