单例模式:确保一个类只有一个实例,并提供一个全局访问点。
使用场景:操作系统的任务管理器,操作文件时,同一时间只能允许一个实例对其操作。
废话少说,直接上菜:
运行结果:
主要代码:
private void btnSinglePatton_Click(object sender, EventArgs e)
{
Singleton sl= Singleton.GetInstance();
if (sl != null)
{
MessageBox.Show("sl已经实例化。");
}
else
{
MessageBox.Show("sl为null");
}
}
}
public class Singleton
{
//定义一个静态变量来保存实例
private static Singleton uniqueInstance;
//定义私有构造函数,使外界不能创建该类实例
private Singleton()
{ }
/// <summary>
/// 定义公有方法提供一个全局访问点,同时你也可以定义公有属性,来提供全局访问点
/// </summary>
/// <returns></returns>
public static Singleton GetInstance()
{
//如果类的实例不存在则创建,否则直接返回
if(uniqueInstance==null)
{
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
}