【发布时间】:2016-12-27 17:10:21
【问题描述】:
我已经有一段时间没有使用单例了,因为我从静态类中获得了单例的所有功能。两者之间有什么我应该注意的区别吗?
单例示例:
class SomeManager {
static let sharedInstance = SomeManager()
var user: User!
init(user: User) {
self.user = user
}
}
有用法:
SomeManager.sharedInstance.user
静态类示例:
class SomeManager {
static var user: User!
init(user: User) {
SomeManager.user = user
}
}
有用法:
SomeManager.user
我知道明显的区别是一个是整个类被设为静态,另一个是声明特定部分(希望来自单个实例)静态。有什么理由使用其中一个。
我现在有一个网络设置,其中我有一个单例网络调用类,可以通过一个类中的一堆静态方法访问,该类只包含网络单例及其静态方法。我发现这对我的场景有适当的范围,但还没有做足够的研究来保证方法的质量。
示例:
class NetworkCalls {
static let network = Network()
static func getToken(completion: () -> Void) {
network.apiGetToken() {
completion()
}
}
}
有用法:
NetworkCalls.getToken() {
print("Network Call Completed")
}
它工作得很好,所以我只是在寻找效率问题、要考虑的事情以及这种方法与替代方法之间的区别。任何提示/建议将不胜感激!
【问题讨论】:
标签: swift xcode static singleton