设计模式之单件模式

10/21/2012 5:16:38 PM

名称:单件模式

意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

     适用环境:

     1、当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。

     2、当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

 

    classSingleton

    {  

        privatestaticSingleton_instance;

        protectedSingleton()

        {

        }

        publicstaticSingletonInstance()

        {

            // Uses lazy initialization.

            // Note: this is not thread safe

            if(_instance == null)

            {

                _instance = newSingleton();

            }

            return_instance;

        }

}

调用:

Singletons1 = Singleton.Instance();

            Singletons2 = Singleton.Instance();

 

            if(s1 == s2)

            {

                Console.WriteLine("Objects are same instance");

            }

 

输出:

Objects are same instance