
通常,单例用于向应用程序引入某种 全局状态 。(说实话,通常不是很必要,但这是另一个话题。)
但是,在一些极端情况下,甚至 无状态 单例也可能有用:
由于某些特定的 技术 原因,您需要一个 对象实例 。示例:C#或Java 语句的同步对象。 __
lock``synchronized
您需要继承,即您希望能够使用相同的接口但使用不同的实现轻松地用另一个替换单例。
示例:
Toolkit.getDefaultToolkit()Java中的方法将返回一个单例,其确切类型取决于系统。
您想要一个哨兵值的 引用相等 。示例:在C#中。
DBNull.Value