使用Objective-C / Swift Singleton模型,为什么我们要创build一个共享实例,而不是只使用类方法?

看来我们总是使用sharedInstance类variables来访问Singleton并在其上执行方法。 但是为什么我们不做所有的操作类方法,根本就没有variables来处理呢? [SingletonClass uploadFile:(NSFile *)file]而不是[[SingletonClass sharedInstance] uploadFile:(NSFile *)file] (或Swift等效)。

variables带来了什么好处? 还是我只是忽略了一个非常单一的概念,没有一个variables会阻止?

而且,什么阻止这个variables被内存释放? 我知道这只是一次创build ,但为什么它不会被删除?

如果需要能够存储状态,则创build共享实例。 如果你能用类方法逃脱,那绝对是可取的。 你的应用程序中的状态越less,尤其是对于单例,你创build的bug就越less。