静态类和单例模式之间存在什么实际(即实际)差异?
两者都可以在没有实例化的情况下调用,两者都只提供一个 “实例”,它们都不是线程安全的。还有其他区别吗?
是什么让你说单例或静态方法不是线程安全的?通常两者都应该实现为线程安全的。
单例和一堆静态方法之间的最大区别在于单例可以实现接口(或者从有用的基类派生,尽管根据我的经验这不太常见),所以你可以传递单例,好像它只是 “另一个” “实施。
真正的答案是 Jon Skeet, 在另一个论坛上 。
单例允许访问单个创建的实例 - 该实例(或者更确切地说,对该实例的引用)可以作为参数传递给其他方法,并作为普通对象处理。
静态类只允许静态方法。
interface
,但是类的静态方法(或者例如 C# static class
)不能。