1. 程式人生 > >c#單例模式 兩種實現方式

c#單例模式 兩種實現方式



    //單例模式一,本模式具有多執行緒不安全性,可通過多執行緒鎖來實現功能
    public class Class1
    {
        //(1)將建構函式定義為private
        private Class1()
        {
 
        }

        //(2)建立靜態例項
        public static Class1 classInstance = null;


        //(3)建立靜態方法,通過該方法實現單例
        public static Class1 GetClass1()
        {
            if (classInstance==null)
            {
                return classInstance = new Class1();
            }
            else
            {
                return classInstance;
            }
        }

    }

    //單例模式二
    public class model2
    {
        //第一步:構建私有建構函式,本模式具有多執行緒安全性
        private model2()
        {
 
        }
        //第二步:建立只讀欄位,保證只有一個例項
        private static readonly model2 modelInstance = new model2();


        //第三步:實現呼叫函式
        public static model2 GetInstance()
        {
            return modelInstance;
        }
    }