单例模式保证在整个应用程序的生命周期中,在任何时刻,被指定的类只有一个实例,并为客户程序提供一个获取该实例的全局访问实例。
public class A
{
//因为静态变量的生命周期跟整个应用程序的生命周期是一样的,所以可以定义一个私有的静态全局变量instance来保存该类的唯一实例
private static A ains;
private A()
{
//构造函数必须是私有的,以保证客户程序不会通过new()操作产生一个实例,达到实现单例的目的
}
//提供一个全局函数访问获得该实例
public static A Getains()
{
if (ains == null)
{
ains = new A();
}
return ains;
}
}
1:只存在唯一一个实例
2:提供统一对外访问接口,使得全局可对该单例的唯一实例进行访问
3:内部自己实例化(私有构造函数,不允许外界对其进行实例化)
一般在游戏中一直存在的物体对象,资源等管理类使用单例模式