【发布时间】:2018-01-12 11:28:55
【问题描述】:
这感觉就像讨论在几次 Swift 迭代之前就停止了,但我很好奇,在讨论中,从未有人建议(或者如果我从未见过)单身人士可以只是一个纯粹的类类函数,例如 -
class MySingleton {
private static var someVar: String?
private static var someOtherVar: SomeType?
class func start() {
// etc...
}
class func doSomething() {
// etc...
}
// etc, etc...
}
我们不应该这样做有什么好的理由吗?我想不出来。
【问题讨论】:
-
是的 - 你可能是对的 - 我看的时候没发现
-
要考虑的一种情况是,如果您需要“重置”您的单例,我的意思是将其恢复到初始状态。使用“正确”的单例,您可以删除当前实例并创建一个新实例,但是使用您的方法,您必须有某种方法来重置所有内容,并且很容易从中遗漏一些东西。
-
一个问题是防止子类化,这可以通过使用
final class或struct来解决。另外,考虑最终隐藏你的初始化程序:stackoverflow.com/a/42569039/1033581