.NET 设计模式之单例模式(一)

1.简单解释:在创建对象时,无论创建多少次,在堆空间上只会申请一次内存空间。

2.例子(1):

public class Singleton{
  private static Singleton _singleton = null;
  //锁
  private static Object singleton_lock = new Object();
  //构造函数私有化
  private Singleton(){
      //初始化代码
  }
  public static Singleton CreateInstance(){
     if(_singleton == null) //先看看是否初始化过,避免每次进入都要判断锁
     {
        lock(_singleton_lock){  //防止多个线程进入
            if(_singleton == null){  //判断单例对象是否为null
               _singleton = new Singleton();
            }
        }
     }
     return _singleton;
  }
}

例子(2):  

public class Singleton{
  private static Singleton _singleton = null;
  //构造函数私有化
  private Singleton(){
      //初始化代码
  }
  //静态构造函数
  static Singleton(){
      _singleton = new Singleton();
  }
  public static Singleton CreateInstance(){
     return _singleton;
  }
}

例子(3): 

 public class Singleton{
    private static Singleton _singleton = new Singleton();
    //构造函数私有化
    private Singleton(){
        //初始化代码
    }
    public static Singleton CreateInstance(){
       return _singleton;
    }
 }

  

 

  

 

posted @ 2016-08-07 21:36  曹国栋  阅读(304)  评论(0编辑  收藏  举报