单例类是一种设计模式,它限制一个类只能创建一个实例,并提供一个全局访问点。单例类通常用于管理共享资源或控制某个唯一对象的状态。
在单例类中,通常有一个私有的构造函数,用于防止外部代码创建实例。而通过一个静态方法或属性,单例类提供了唯一的访问点,用于获取类的实例。
例如,以下是一个简单的单例类的示例:
public class SingletonClass { private SingletonClass() { }
//锁要不然多个线程同时调用单例类可能会报错
private static object Lock =new object();
private static SingletonClass instance ;
//创建静态函数提供给外部获取SingletonClass类的对象
public static EnterSinglenton GetInstance()
{
//锁
lock (Lock)
{
if (instance!=null)
{
return instance;
}
return instance = new EnterSinglenton();
}
}
}
在上面的示例中,SingletonClass是一个单例类。它拥有一个私有的类属性 instance,用于保存类的实例。GetInstance 是一个静态方法,用于获取类的实例。在这个方法中,如果实例还没有被创建,就会调用类的构造函数来创建实例,并赋值给 instance。如果实例已经存在,就直接返回该实例。
使用单例类时,可以通过以下方式获取类的实例:
SingletonClass. GetInstance();
这样,无论在何处调用获取实例的代码,都能获取到同一个实例。