为什么要使用单例模式?

yog*_*esh 5 singleton static design-patterns

我是.NET开发人员。我接受了几次采访,并且多次遇到一个问题:“ Singleton Design模式在现实中的用途是什么?”。但是我的问题是“为什么我们使用单例,静态关键字就足够了?” 因为单例设计模式的目的是防止创建双重实例。如果我将single_class标记为static,那么我是否也可以实现相同的目标。

And*_*bel 4

C# 中使类静态化的能力是单例模式的语言实现。

设计模式是解决常见问题的常见方法。在诸如 C++ 之类的语言中,类不能直接标记为静态,单例必须通过某种智能构造(一种模式)来实现。在 C# 中,该功能是通过静态类内置的。

问题/讨论的下一部分是适合使用单例的地方,单例是一种全局对象/变量。我认为面试官想就什么地方合适、什么地方不合适进行一些讨论。

编辑

阅读乔恩·斯基特 (Jon Skeet) 对戴夫所链接问题的回答,我想补充另一件事:

静态类无法实现接口,因此如果需要一个实现特定接口的单例,它必须是一个真实的对象,并将该类标记为static不行。