单例模式

单例模式(也叫单件模式)的作用就是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个(当然也可以不存在)。

单例模式保证一个类仅有一个实例,同时这个类还必须提供一个访问该类的全局访问点。比如下面的类

Singleton 类

namespace Singleton 

    public class Singleton 
    { 
        //定义一个私有的静态全局变量来保存该类的唯一实例 
        private static Singleton singleton;

        /// <summary> 
        /// 构造函数必须是私有的 
        /// 这样在外部便无法使用 new 来创建该类的实例 
        /// </summary>
 
        private Singleton() 
        { 
        }

       /// <summary> 
        /// 定义一个全局访问点 
        /// 设置为静态方法 
        /// 则在类的外部便无需实例化就可以调用该方法 
        /// </summary> 
        /// <returns></returns>
 
        public static Singleton GetInstance() 
        { 
         
   //这里可以保证只实例化一次 
            //即在第一次调用时实例化 
            //以后调用便不会再实例化
 
            if (singleton == null
            { 
                singleton = new Singleton(); 
            } 
            return singleton; 
        } 
    } 
}

客户端代码

using System;

namespace SingletonTest 

    class Program 
    { 
        static void Main(string[] args) 
        { 
            Singleton.Singleton singletonOne = 
                Singleton.Singleton.GetInstance(); 
            Singleton.Singleton singletonTwo = 
                Singleton.Singleton.GetInstance();

            if (singletonOne.Equals(singletonTwo)
            { 
                Console.WriteLine("singletonOne 和 singletonTwo 代表的是同一个实例"); 
            } 
            else 
            { 
                Console.WriteLine("singletonOne 和 singletonTwo 代表的是不同一个实例"); 
            }

            Console.ReadKey(); 
        } 
    } 
}

结果输出:singletonOne 和 singletonTwo 代表的是同一个实例


转载:http://www.cnblogs.com/BoyXiao/archive/2010/05/07/1729376.html?login=1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值