我有一段时间没有发现自己使用单例,因为我从静态类中获得了一个单元的所有功能。我应该注意两者之间是否存在差异?
Singleton示例:
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")
}
它运作正常,所以我只是在寻找效率问题,需要考虑的事情,以及这种与替代方法之间的差异。任何提示/建议都将受到高度赞赏!
答案 0 :(得分:0)
我可能错了,但是单例的想法是为所有应用程序获得一个唯一的单一类,它只在一生中被初始化一次(大多数情况下)并且主要用于在生命周期中的状态验证。你的应用。
静态类更通用的是类。
虽然你可以用静态类做同样的事情......