單件模式

單件模式概念:保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。spa

我以前的概念搞混了,覺得只要一個實例就是單件模式。它最主要的是提供一個訪問它的全局訪問點,也就是屢次訪問,一個類的實例地址。code

代碼以下:blog

using System;

namespace GlobalSpooler
{
    /// <summary>
    /// Summary description for Spooler.
    /// </summary>
    public class Spooler     {
        private static Spooler MySpooler ;
        private static bool instance_flag= false;
        private Spooler()  {
            instance_flag = true;
        }
        public static Spooler getSpooler() {
            if (! instance_flag) 
                MySpooler = new Spooler ();
             return MySpooler;
        }

    }
}

Main訪問代碼ip

using System;

namespace GlobalSpooler
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    class GlobSpooler
    {
        static void Main(string[] args)
        {
            Spooler sp1 = Spooler.getSpooler();
            if (sp1 != null)
                Console.WriteLine("Got 1 spooler");
            Spooler sp2 = Spooler.getSpooler();
            if (sp2 == null)
                Console.WriteLine("Can\'t get spooler");

           if (sp1==sp2)
             Console.WriteLine ("They are same.");
          else
            Console.WriteLine ("They are not same.");

            //fails at compile time
            //Spooler sp3 = new Spooler();
        }
    }
}
相關文章
相關標籤/搜索