天天看點

單例模式的兩種寫法(餓漢式與懶漢式)

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace 單例模式

{

    /// <summary>

    /// 單例模式作用産生唯一對象

單例類隻能有一個執行個體。

單例類必須自己建立自己的唯一執行個體。

單例類必須給所有其它對象提供這一執行個體。

應用:

每台計算機可以有若幹個列印機,但隻能有一個printer spooler,避免兩個列印作業同時輸出到列印機。

一個具有自動編号主鍵的表可以有多個使用者同時使用,但資料庫中隻能有一個地方配置設定下一個主鍵編号。否則會出現主鍵重複。

    /// </summary>

    class program

    {

        static void main(string[] args)

        {

            //餓漢式

            penson p = penson.getpenson();

            //懶漢式

            animus animus = animus.getanimus();

        }

    }

    class penson

        /// <summary>

        /// 單例模式之餓漢式

        /// </summary>

        //第一步設定私有的構造函數

        private penson()

        { }

        //第二步:設定全局唯一變量

        private static penson _penson = new penson();

        //第三步:寫傳回值為penson類型的函數

        public static penson getpenson()

            return _penson;

    class animus

        /// 單例模式之懶漢式

        private animus() { }

        private static animus _animus = null;

        public static animus getanimus()

            if (_animus == null)

            {

                _animus = new animus();

            }

            return _animus;

}

繼續閱讀