C# 設計模式-單例模式(Singleton)


所謂單例模式即所謂的一個類只能有一個實例,說白了,也就是類只能在內部實例一次,然后提供這一實例,外部無法對此類實例化。

單例模式的特點:

1、只能有一個實例;

2、只能自己創建自己的唯一實例;

3、必須給所有其他的對象提供這一實例。

單例模式的創建方法:

1、沒有考慮多線程安全問題

public class Singleton
{
    private static Singleton _instance = null;
    private Singleton(){}
    public static Singleton CreateInstance()
    {
        if(_instance == null)
        {
            _instance = new Singleton();
        }
        return _instance;
    }
}

2、考慮多線程安全

public class Singleton
{
    private volatile static Singleton _instance = null;
    private static readonly object _lockrobject = new object();
    private Singleton(){}
    public static Singleton CreateInstance()
    {
        if(_instance == null)
        {
            lock(_lockrobject )
            {
                if(_instance == null)
                     _instance = new Singleton();
            }
        }
        return _instance;
    }
}

3、C#,自己主動創建實例

public class Singleton
{
    private Singleton(){}
    public static readonly Singleton instance = new Singleton();
}

單例模式的應用:

1、MDI窗體使用單例模式可以防止窗體被實例化多次。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM