为什么会出现单例模式
项目中经常会遇到好多个类调用一个类实例的情况,每次调用这个类都要实例化一下也就是new一下,这样就会把原始类里面的数据清空,得不偿失,所以产生了单例模式的这种编程设计模式。
单例模式的目的
单例模式被设计出来就是为了确保一个程序中只有一个实例,并提供一个全集访问点,节省系统资源。
实现单例模式的方法
首先新建一个单例类,把这个单例类的构造函数设置成private,让这个类无法在外部被实例化。
无法从外部实例化,就要从内部实例化,然后在这个单例类里提供一个方法来和外部对接这个实例化的类。也就是说提供一个获取这个实例化的接口函数。
class Class_single
{
private Class_single()//类私有化
{
}
static Class_single g_cs = null;
static object g_locker = new object();
public static Class_single GetInstance()
{
if(g_cs == null)
{
lock (g_locker)//锁,为了避免多个线程同时实例化
{
g_cs = new Class_single();
}
}
return g_cs;
}
}
单例模式的应用
单例类已经封装完成了,让我们来在这个类里面写一个方法来看看单例是怎么应用
int num = 0;
public int AddNum()
{
return num++;
}
然后新建三个类,分别在这三个类中写入一下方法来应用
public string AddNumString()
{
Class_single cs = Class_single.GetInstance();//沟通外部实例化接口
return cs.AddNum().ToString();
}
最后再用三个按钮调用这三个类,实现以下内容。
每按一次按钮数字都会累加,并且不管哪个按钮都行。