using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SingleLeton
{
???public class SingleLeton
???{
???????//声明一个静态的变量用于存储实体
???????//3.为了保存创建的实例定义一个静态的变量来保存的实例
???????private static SingleLeton _instance = null;
???????/// <summary>
???????/// 4.创建一个对象,用于枷锁,防止多线程创建多个实例
???????/// </summary>
???????private static object locker = new object();
???????/// <summary>
???????/// 1.私有的构造函数,杜绝了用户直接New来获取对象实例(防止用户随便New 为的就是这个主题单例模式,不然的话 就不是单例的可能是都可以访问的那种)
???????/// </summary>
???????private SingleLeton()
???????{
???????}
???????/// <summary>
???????/// 2.定义了静态的公共方法用于获取实例对象
???????/// 提供一个实例访问入口
???????/// </summary>
???????/// <returns></returns>
???????public static SingleLeton GetIntence()
???????{
???????????//如果_instance==null才进行加锁
???????????if (_instance == null)
???????????{
???????????????//第一个线程进来,就把这片区域锁住,其他的线程进不来,等当前线程完成后其他线程才可以进场
???????????????lock (locker)
???????????????{
???????????????????if (_instance == null)
???????????????????{
???????????????????????//因为在同一个类可以访问私有的 故可以New
???????????????????????_instance = new SingleLeton();
???????????????????}
???????????????}
???????????}
???????????return _instance;
???????}
???}
}
单例模式MVC
原文地址:http://www.cnblogs.com/yaodengfeng/p/7800369.html