我正在理解singleton模式。我在这里写了一小段代码
程序.cs:
class Program
{
static void Main(string[] args)
{
SingleObject objtemp = SingleObject.getInstance();
objtemp.showMessage();
}
}
SingleObject.cs
class SingleObject
{
static SingleObject obj = new SingleObject();
private SingleObject()
{
}
public static SingleObject getInstance()
{
return obj;
}
public void showMessage()
{
Console.WriteLine("Hello Message");
}
}
我不明白究竟是什么在调用SingleObject()
构造函数?当我调用getInstance()
方法时,它是否正确地返回了实例?
基本思想是您将构造函数私有化。因此,您无法从外部初始化SingleObject的对象。但是,您在类本身中创建的静态对象可以使用私有构造函数,允许您使用公共方法从外部访问它。
static SingleObject obj = new SingleObject();
您正在进行此实例化。它将在首次使用前调用。在这里阅读更多静态变量什么时候在C#中初始化?