单例模式

作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。
单例模式有以下特点:
单例类只能有一个实例。
单例类必须自己创建自己的唯一实例。
单例类必须给所有其他对象提供这一实例。
一个典型的单例类的实现如下所示:其中构造子私有表示子类不能被继承
public class Singleton

      private static Singleton m_instance = null; 
      private Singleton() { } 
      public static Singleton getInstance() 
      { 
            if(m_instance==null) 
            { 
                  m_instance=new Singleton(); 
            } 
            return m_instance; 
      }
}

 

加上多线程的单例模式

public class Singleton

      private static Singleton m_instance = null; 

  private static object instanceObj = new object();


      private Singleton() { } 
      public static Singleton getInstance() 
      { 
            if(m_instance==null) 
            { 

      lock(instanceObj)

      {

        if(m_instance==null)

        {
                      m_instance=new Singleton(); 

        }

      }
            } 
            return m_instance; 
      }
}

 


 

posted @ 2009-08-16 01:00  Vihone  阅读(259)  评论(0编辑  收藏  举报