Singleton - juedaiyuer/researchNote GitHub Wiki
#单例模式#
- 一个类的class只有一个实例存在,通常用于资源管理器
方法
- 我们需要一个静态的对象属性,并且私有化
- 要有一个私有的构造函数
- 要有一个静态的返回单例对象的方法,这个方法名最好统一成getInstance()
static关键字
- static标识的,在类加载的时候创建,属于整个类,通过类名调用,不属于类实例
- static属性被类的一个对象修改过,其它对象使用的是修改后的值
饥汉模式
public class Single
{
private static Single my_single = new Single();
public static Single getInstance()
{
return my_single;
}
public void display()
{
System.out.println("singleton test ");
}
}
- 在编译时已经创建了一个实例
饱汉模式
public class Single
{
private static Single my_single = null;
private Single(){}
public synchronized static Single getInstance()
{
if(my_single == null)
my_single = new Single();
return my_single;
}
public void display()
{
System.out.println("singleton test ");
}
}
- 运行时才创建