读书人

设计方式(八)单例模式(创建型)

发布时间: 2013-04-12 18:33:12 作者: rapoo

设计模式(八)—单例模式(创建型)
一、简介(Brief Introduction)

保证一个类只有一个实例,并提供一个访问它的全局访问点。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进行实例化开始。因此需要用一种只允许生成对象类的唯一实例的机制,“阻止”所有想要生成对象的访问。使用工厂方法来限制实例化过程。这个方法应该是静态方法(类方法),因为让类的实例去生成另一个唯一实例毫无意义。

单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。

从具体实现角度来说,就是以下三点:一是单例模式的类只提供私有的构造函数,二是类定义中含有一个该类的静态私有对象,三是该类提供了一个静态的共有的函数用于创建或获取它本身的静态私有对象。

二、模式分析(Analysis)

设计方式(八)—单例模式(创建型)

参与者:Singleton类定义一个Instance操作,允许客户访问它的唯一实例,Instance是一个类操作。可能负责创建自己的唯一实例。

协作关系:客户只能通过Singleton的Instance操作访问一个Singleton的实例。

三、案例分析(Example)

1、Singleton类定义一个Instance操作,允许客户访问它的唯一实例。GetInstance是一个静态方法,主要负责创建自己的唯一实例。

            static void Main(string[] args)            {                Singleton s1 =Singleton.GetInstance();                Singleton s2 =Singleton.GetInstance();                 if (s1 == s2)                                                  //比较两次实例化后对象结果是实例相同                {                   Console.WriteLine("两个对象是相同的实例");                }                 Console.Read();            }     }

四、解决的问题(What To Solve)
读书人网 >软件开发

热点推荐