design-patterns - 为什么使用单例模式?

标签 design-patterns static singleton

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

最佳答案

C# 中使类成为静态的能力是单例模式的语言实现。
设计模式是解决常见问题的常用方法。在诸如 C++ 之类的类不能直接标记为静态的语言中,必须通过一些智能构造(一种模式)来实现单例。在 C# 中,该功能是通过静态类内置的。
问题/讨论的下一部分是适合使用单例的地方,单例是一种全局对象/变量。我假设面试官想要讨论哪些地方合适,哪些地方不合适。
编辑
阅读 Jon Skeet's answer对于链接到的问题,我想添加另一件事:
静态类不能实现接口(interface),所以如果需要一个实现特定接口(interface)的单例,它必须是一个真实的对象并将类标记为 static不会的。

关于design-patterns - 为什么使用单例模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6883341/

相关文章:

java - Spring 注入(inject): @Component over native singleton

JavaScript 对象方法返回 null 属性

model-view-controller - 存储库模式 + 工作单元

java - 如何重构只将请求转发给DAO的服务方法?

C++在静态函数中获取类类型

methods - 何时在 Salesforce 中将方法声明为静态

java - Java静态内部类的私有(private)构造函数

Java - 备忘录模式和撤消

java - 为单元测试伪造构造函数

ios - 单例应该在方法中使用自实例还是共享实例