单例模式:
这里有单例模式的八种写法比较:https://www.cnblogs.com/zhaoyan001/p/6365064.html
单例模式是指:让类只产生一个对象
实现思路:
单例模式要求类能够有返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称)。
单例的实现主要是通过以下两个步骤:
- 将该类的构造方法定义为私有方法,这样其他处的代码就无法通过调用该类的构造方法来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例;
- 在该类内提供一个静态方法,当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用。
饿汉式:
1.私有化构造方法;
2.
class Singleton{
private static Singleton s = new Singleton();
private Singleton{}
public static Singleton getIntance(){
return s;
}
}
懒汉式:
class Singleton{
private static Singleton s; //引用数据类型的默认值是null
private Singleton(){}
public static Singleton getInstance(){
if(s == null){
s = new Singleton();
}
return s;
}
}