如何用 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
广告