singleton模式-创建对象



我正在理解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#中初始化?

最新更新