小马的天空
我为软狂

导航

 
Singleton实现单一实例化
public class Singleton
 
{
   
private static Singleton instance;
   
private Singleton (){}//私有构造器
    public static Singleton instance
    
{
     
get
       
{
         
if(instance==null)
          
{instance=new Singleton();}
          
return instance;
       }

    }


 }
多线程形式下实现
 class Singleton
 
{
   
private static volatile Singleton instance=null;
   
private static object lockhelper = new object();
   
private Singleton (){}//私有构造器
    public static Singleton instance
    
{
     
get
       
{
         
if(instance==null)
          
{
             
lock(lockhelper )
             
if(instance==null)
              
{
               instance
=new Singleton();
              }

          }

          
return instance;
       }

    }


 }
内连初始化
class Singleton
{
  
public static readonly Singleton Instance = new Singleton();
}

//等同
class Singleton
{
   
public static readonly Singleton Instance;
   
static Singleton()
    
{
      Instance 
= new Singleton();
    }

   
private Singleton() {}
}
带参数的Singleton
public class Singleton
 
{
   
private static Singleton instance;
   
private Singleton(int x,int y)//私有构造器
    
      
this.x = x;
      
this.y = y;
    }

    
public static Singleton instance()
    
{
     
         
if(instance==null)
          
{instance=new Singleton(x,y);}
          
return instance;
       
    }

   
int x;
   
int y;

 }
posted on 2006-07-01 09:14  Vinson  阅读(176)  评论(0)    收藏  举报