5种创建型设计模式-单例模式(Singleton Pattern)

保证系统中只存在一个实例

class MultiThread_Singleton
{
    private  static volatile MultiThread_Singleton instance = null;
    private static object lockHelper = new object();
    private MultiThread_Singleton() { }
    public static MultiThread_Singleton Instance
    {
        get
        {
           if (instance == null)
           {
               lock (lockHelper)
               {
                   if (instance == null)
                   {
                       instance = new MultiThread_Singleton();
                   }
               }
           }
           return instance;
        }         
  }
}

volatile 保证严格意义的多线程编译器在代码编译时对指令不进行微调。

静态Singleton实现

 class Static_Singleton
 {
     public static readonly Static_Singleton instance = new Static_Singleton();
     private Static_Singleton() { }
 }

以上代码展开等同于
class Static_Singleton
{
public static readonly Static_Singleton instance;
static Static_Singleton()
{
instance = new Static_Singleton();
}
private Static_Singleton() { }
}

由此可以看出,完全符合Singleton的原则。
优点: 简洁,易懂
缺点: 不可以实现带参数实例的创建。

你可能感兴趣的:(5种创建型设计模式)