如何用 C# 实现单例设计模式?


单例模式属于创建型模式

当我们需要确保特定类的对象仅被实例化一次时,使用单例设计模式。创建的单个实例负责协调整个应用程序中的操作。

作为实现准则的一部分,我们需要确保类只有一个实例,方法是将类的所有构造函数声明为私有的。此外,为了控制单例访问,我们需要提供一个静态属性,该属性返回对象的单个实例。

示例

Sealed 确保类的继承和对象实例化在派生类中受到限制

用 null 初始化的私有属性

确保仅创建对象的一个实例

基于 null 条件

私有构造函数确保对象没有在类本身之外实例化

可通过单例实例调用的公共方法

 现场演示

public sealed class Singleton {
   private static int counter = 0;
   private static Singleton instance = null;
   public static Singleton GetInstance {
      get {
         if (instance == null)
         instance = new Singleton();
         return instance;
      }
   }
   private Singleton() {
      counter++;
      Console.WriteLine("Counter Value " + counter.ToString());
   }
   public void PrintDetails(string message) {
      Console.WriteLine(message);
   }
}
class Program {
   static void Main() {
      Singleton fromFacebook = Singleton.GetInstance;
      fromFacebook.PrintDetails("From Facebook");
      Singleton fromTwitter = Singleton.GetInstance;
      fromTwitter.PrintDetails("From Twitter");
      Console.ReadLine();
   }
}

输出

Counter Value 1
From Facebook
From Twitter

更新日期: 08-Aug-2020

471 次浏览

开启你的 职业

通过完成课程获得认证

开始
广告