天天看點

設計模式--單例模式,與生活結合

     一、我的了解 

       單例模式,其目的是讓某個類隻有一個執行個體,并且友善于外界通路,進而實作友善的對執行個體個數的限制

       很明顯,采用單例模式有如下作用:

       1、友善對不能并發的資源統一管理

       2、節省記憶體開銷,避免每一次處理都建立對象

       3、能友善共享,讓所有對象通路

    二、應用

       生活中有哪些可以使用單例模式:

       1、皇帝,在朝廷上僅一個皇帝,在古代皇帝處理事務并不能并發執行,如果每個臣子都建立一個皇帝去向皇上提問,那估計皇上會徹底崩潰,每個人跟皇帝溝通前,先要看皇帝是否沒與人溝通,是以,用單例模式確定了僅一位皇帝,而大家可以共享通路皇帝來得到皇帝的狀态

       2、網站記錄通路人數,大家都對同一個對象進行通路,擷取人數以及增加通路次數,在使用最小記憶體開銷的同時又能確定讓所有對象通路

       3、printer spoolter,一台計算機可以用多個列印機,但隻能夠有一個printer spoolter,避免兩個列印作業同時輸出到列印機中

       4、網絡會議,會議室隻能有一個,得到會議室位址後,才能夠加入會議中來,確定大家通路的是同一個會議

       三、代碼

using System;
using System.Collections.Generic;
using System.Text;

namespace ModeDemo.Singleton
{
    /// <summary>
    /// 單件模式
    /// </summary>
    public class Singleton
    {
        private static Singleton instance;

        protected Singleton()
        { }

        public static Singleton Instance()
        {
            if (instance == null)
            {
                instance = new Singleton();
            }

            return instance;
        }
    }
}      
///1、單件模式的使用
            Singleton.Singleton s1 = Singleton.Singleton.Instance();
            Singleton.Singleton s2 = Singleton.Singleton.Instance();

            if (s1 == s2)
            {
                Console.WriteLine("這兩個對象是同一下對象");
            }

            Console.Read();      

繼續閱讀