【发布时间】:2010-10-05 21:26:00
【问题描述】:
静态类和单例模式之间存在什么真正的(即实际的)区别?
两者都可以在没有实例化的情况下调用,都只提供一个“实例”,而且它们都不是线程安全的。还有其他区别吗?
【问题讨论】:
-
根据语言实现和您的使用模式,Singleton 可能效率较低,因为每次您想使用它时调用
getInstance()方法的开销(虽然可能在大多数情况下it doesn't matter)。 -
已经有很多答案了。它实际上是一个
singleton对象,其中static方法只是函数,一个非OO 实体。 -
当您希望允许第三方提供类的实现时会有所不同。在这种情况下,您通常还需要一个工厂模式。见agiletribe.wordpress.com/2013/10/08/…
-
IMO 这个答案总结得很好stackoverflow.com/questions/14097656/…
标签: design-patterns static singleton