什么是单例模式?
单例模式:保证一个类只有一个实例的实现方法。并提供一个访问他的全局访问点。
为什么会有单例模式?
在现实生活中很多地方都体现了单例模式,例如网站的计数器,windows系统的回收站,多线程的线程池等。既然现实生活中有这样的应用场景,在软件领域必然会有对应的方法来实现。
如何实现单例模式?
三要素:
- 私有变量uniqueInstance来记录单例类的唯一实例。
- 私有构造方法来防止外界使用new关键字来创建该类实例。
- 公有方法GetInstance()来创建该类实例的唯一全局访问点。
class InstanceClass{
private static InstanceClass uniqueInstance;
private static readonly object locker = new object();
private InstanceClass(){
}
public static InstanceClass GetInstance(){
if(uniqueInstance==null){
lock(locker){
if(uniqueInstance==null){
uniqueInstance = new InstanceClass();
}
}
}
return uniqueClass;
}
}