public abstract class IBSingleton<T> where T : class, new()
时间: 2023-11-19 14:09:37 浏览: 83
abstract class
这是一个泛型抽象类,命名为 IBSingleton,其中 T 是一个泛型参数,限制 T 必须是一个引用类型,并且必须具有一个默认的无参构造函数。该类的目的是为了实现单例模式,即保证一个类只有一个实例。
在该类中,定义了一个静态变量 instance,用于保存 T 类型的唯一实例。同时,该类中还定义了一个静态方法 GetInstance,用于获取 T 类型的唯一实例。在 GetInstance 方法中,判断 instance 是否为 null,如果为 null,则创建一个新的 T 类型的实例,并将其赋值给 instance 变量,否则直接返回 instance 变量。
具体实现如下:
```csharp
public abstract class IBSingleton<T> where T : class, new()
{
private static T instance = null;
public static T GetInstance()
{
if (instance == null)
{
instance = new T();
}
return instance;
}
}
```
在使用时,只需要将需要实现单例模式的类继承自 IBSingleton<T> 即可。例如:
```csharp
public class MyClass : IBSingleton<MyClass>
{
// 其他代码
}
```
这样,MyClass 类就具有了单例模式的特性,可以通过 MyClass.GetInstance() 方法获取其唯一实例。
阅读全文