[英]Why is instance member static in singleton class?
这是单身人士班
public sealed class Singleton
{
static Singleton instance=null;
static readonly object padlock = new object();
Singleton()
{
}
public static Singleton Instance
{
get
{
lock (padlock)
{
if (instance==null)
{
instance = new Singleton();
}
return instance;
}
}
}
}
我的问题是static Singleton instance=null;
为什么这是静态的?
“实例”字段保存一个实例的引用。
它存储在静态变量中,因为它的范围必须是类本身而不是特定的实例。
因为您在静态属性(实例)中引用变量,所以不能在静态方法或属性中引用实例变量。
拥有Singleton的想法是始终始终只运行一个实例。
Singleton的目的是仅拥有该对象的一个实例[1]。 通过使用首次访问时自动实例化的私有静态实例制作密封类,您可以提供其必要的特征,即仅创建实际对象的一个副本,然后该副本可由系统中其他位置的Singleton.Instance属性访问。
无论如何,都可以在任何AppDomain中使用[1]。
我认为是因为您使用过:
public static Singleton Instance()
该函数是静态的,因此您的实例变量也必须是静态的。
因为它不是静态的,所以仅是名称上的一个单例。 我可以创建它的数千个实例。
因为您只想要程序中的一个(静态)实例
它是静态的,因此Singleton类型的每个实例将使用相同的变量,因此使用“ singleton”模式。
简而言之,Singleton是一种设计模式,用于确保在给定范围内仅创建了某事物的一个实例。
此模式通过几个主要概念完成:
您提供的示例代码是Singleton模式的教科书示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.