csharp 设计模式 - 单例 - 结构代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 设计模式 - 单例 - 结构代码相关的知识,希望对你有一定的参考价值。

using System;
 
namespace AzureTraining
{
  /// <summary>
  /// MainApp startup class for Structural
  /// Singleton Design Pattern.
  /// </summary>
  class MainApp
  {
    /// <summary>
    /// Entry point into console application.
    /// </summary>
    static void Main()
    {
      // Constructor is protected -- cannot use new
      Singleton s1 = Singleton.Instance();
      Singleton s2 = Singleton.Instance();
 
      // Test for same instance
      if (s1 == s2)
      {
        Console.WriteLine("Objects are the same instance");
      }
 
      // Wait for user
      Console.ReadKey();
    }
  }
 
  /// <summary>
  /// The 'Singleton' class
  /// </summary>
  class Singleton
  {
    private static Singleton _instance;
 
    // Constructor is 'protected'
    protected Singleton()
    {
    }
 
    public static Singleton Instance()
    {
      // Uses lazy initialization.
      // Note: this is not thread safe.
      if (_instance == null)
      {
        _instance = new Singleton();
      }
 
      return _instance;
    }
  }
}

以上是关于csharp 设计模式 - 单例 - 结构代码的主要内容,如果未能解决你的问题,请参考以下文章

csharp 设计模式 - 原型 - 结构代码

csharp 设计模式 - 工厂方法 - 结构代码

csharp 设计模式 - 生成器 - 结构代码

csharp 设计模式 - 抽象工厂 - 结构代码

案例分析:设计模式与代码的结构特性

你熟悉的设计模式都有哪些?写出单例模式的实现代码