1. 程式人生 > >Design Pattern - Singleton

Design Pattern - Singleton

單例模式

定義:確保一個類只有一個例項,並提供一個全域性訪問點。

設計思路

  • 私有化建構函式,使外界不能建立該類的例項
  • 對外開放一個共有靜態方法,用於並返回全域性唯一例項。

示例程式碼(C#)

/// <summary>
/// 單例模式的實現
/// </summary>
public class Singleton
{
    private static Singleton m_Singleton;

    private static readonly object locker = new object();

    private Singleton() { }

    /// <summary>
    /// 返回該類全域性唯一例項
    /// </summary>
    /// <returns></returns>
    public static Singleton GetInstance()
    {
        if (m_Singleton == null)
        {
            lock (locker)
            {
                if (m_Singleton == null)
                {
                    m_Singleton = new Singleton();
                }
            }
        }
        return m_Singleton;
    }
}