设计模式学习总结(四)单例模式

   单例模式即一个类只能有一个实例,并且需该类自动提供该实例。

  一、示例展示:

  通过学习及总结,以下是我做的两个单例模式的示例:

  懒汉式的单例模式:

using System;

namespace DesignModel
{
    class Program
    {
        static void Main(string[] args)
        {
            Singleton sl1 = Singleton.GetInstance();
            Singleton sl2 = Singleton.GetInstance();
            if (sl1 == sl2)
            {
                Console.WriteLine("The two instance is identical!");
            }
            Console.ReadLine();
        }
    }

    class Singleton
    {
        private static Singleton Instance;
        private Singleton()
        {

        }

        public static Singleton GetInstance()
        {
            if (Instance == null)
            {
                Instance= new Singleton();
            }
            return Instance;
        }
    }
}
View Code

      饿汉式的单例模式:

using System;

namespace DesignModel
{
    class Program
    {
        static void Main(string[] args)
        {
            Singleton sl1 = Singleton.GetInstance();
            Singleton sl2 = Singleton.GetInstance();
            if (sl1 == sl2)
            {
                Console.WriteLine("The two instance is identical!");
            }
            Console.ReadLine();
        }
    }

    class Singleton
    {
        private static Singleton Instance = new Singleton();
        private Singleton()
        {

        }

        public static Singleton GetInstance()
        {
            return Instance;
        }
    }
}
View Code

  懒汉式的单例模式与饿汉式的单例模式的主要区别:懒汉式的单例模式在每次加载自己时就会进行实例化,而汉式的单例模式则会去进行判断,如果当前实例为空,则才会进行实例化;

  二、单例模式设计理念:

  私有的构造函数,以及可供外部访问的静态方法。

  三、角色及关系:

  

 

posted on 2017-03-31 02:20  Joye_Zhou  阅读(203)  评论(0编辑  收藏  举报

导航