如何在C#中实现Singleton设计模式?
Singleton模式属于Creational类型模式
当我们需要确保仅实例化特定类的一个对象时,使用单例设计模式。创建的单个实例负责协调整个应用程序中的动作。
作为实施准则的一部分,我们需要通过声明该类的所有构造函数为私有来确保该类仅存在一个实例。同样,为了控制单例访问,我们需要提供一个静态属性,该属性返回对象的单个实例。
示例
密封确保继承类,并且在派生类中限制对象实例化
私有属性初始化为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
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短