单件模式

 

public sealed class SingleClass
{
    static SingleClass oSingleClass=null;
    static readonly object padlock = new object();

 public static SingleClass GetSingleClass
 {
     get
     {
         lock (padlock)
         {
         if(oSingleClass==null)
         {
             oSingleClass = new SingleClass();
         }
         return oSingleClass;
         }
    
     }
 

这种方式的实现对于线程来说是安全的。我们首先创建了一个进程辅助对象,线程在进入时先对辅助对象加锁然后再检测对象是否被创建,这样可以确保只有一个实例被创建,因为在同一个时刻加了锁的那部分程序只有一个线程可以进入。这种情况下,对象实例由最先进入的那个线程创建,后来的线程在进入时(instence == null)为假,不会再去创建对象实例了。但是这种实现方式增加了额外的开销,损失了性能。

 

应该很好理解。不能使用new来生成类。只能用静态的方法。

 

静态方法里只能调用静态成员。

你可能感兴趣的:(模式)