天道酬勤,学无止境

单例模式

C#的单例模式实现

只能生成一个实例的类是实现了Singleton(单例)模式的类。以下为C#实现单例模式的方式。 方式一只使用于单线程环境 // 把构造函数设为私有函数以禁止他人创建实例 // 定义一个静态的实例在需要的时候创建该实例 // 在Singlrton的静态属性Instance中只有在instance为null的时候才创建一个实例以避免 // 重复创建 // 把构造函数定义为私有函数 public sealed class Singleton1 { public int a = 2; private Singleton1() { } private static Singleton1 instance = null; public static Singleton1 Instance { get { if (instance == null) instance = new Singleton1(); return instance; } } } 方式二虽然在多线程环境中能工作但效率不高 // 每次通过属性Instance得到Singleton2的实例都会试图加上一个同步锁 // 而加锁是一个非常耗时的操作在没有必要的时候应该尽量避免 public sealed class Singleton2 { public int a = 2; private Singleton2(){}

2021-03-26 21:19:02    分类:博客    c#    单例模式   c#