Welcome

首页 / 软件开发 / 数据结构与算法 / 解读设计模式----单例模式(Singleton Pattern)

解读设计模式----单例模式(Singleton Pattern)2011-12-28 博客园 Bēniaǒ单例模式可以保证一个类有且只有一个实例,并提供一个访问它的全局访问点.在程序设计中,有很多情况需要确保一个类只能有一个实例.从这句话可以看出,Singleton模式的核心:如何控制用户使用new对一个类的实例构造器的任意调用。如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?这应该是类设计者的责任,而不是使用者的责任。

一、单例模式意图

保证一个类有且只有一个实例,并提供一个访问它的全局访问点。

二、单例模式UML图(该图来至http://www.dofactory.com/)

三、示例解说单例模式

看看下面这个简单的示例:

1namespace DesignPattern.Singleton2{3  public class Singleton4  {5    //静态私有属性6    private static Singleton instance;78    /// <summary>9    /// 私有构造器--让类的使用者调用不到此构造器10    /// </summary>11    private Singleton()12    { }1314    public static Singleton Instance15    {16      get17      {18        if (instance == null)19        {20          instance = new Singleton();21        }22        return instance; //返回的总是第一次实例的对象23      }24    }25  }2627  //测试类28  class TestSingleton29  {30    public static void Main2(string[] args)31    {32      Singleton t1 = Singleton.Instance;33      Singleton t2 = Singleton.Instance;34      Console.WriteLine(object.ReferenceEquals(t1, t2) == true);35    }36  }37}