我是 .NET 开发人员。我接受了几次采访,很多次遇到一个问题,“单例设计模式在现实世界中的用途是什么?”。但我的问题是“为什么我们使用单例,静态关键字就足够了?”因为单例设计模式的目标是防止创建双重实例。如果我将我的 single_class 标记为静态,我也可以实现相同的目标。
最佳答案
C# 中使类成为静态的能力是单例模式的语言实现。
设计模式是解决常见问题的常用方法。在诸如 C++ 之类的类不能直接标记为静态的语言中,必须通过一些智能构造(一种模式)来实现单例。在 C# 中,该功能是通过静态类内置的。
问题/讨论的下一部分是适合使用单例的地方,单例是一种全局对象/变量。我假设面试官想要讨论哪些地方合适,哪些地方不合适。
编辑
阅读 Jon Skeet's answer对于链接到的问题,我想添加另一件事:
静态类不能实现接口(interface),所以如果需要一个实现特定接口(interface)的单例,它必须是一个真实的对象并将类标记为 static
不会的。
关于design-patterns - 为什么使用单例模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6883341/