1、私有化类的构造器
2、先声明当前类对象,没有初始化
private Order instace = null;
public class Order {
private Order() {
}
private static Order instance = null;
public static Order getInstance() {
instance = new Order();
return instance;
}
}
这样会导致在 getInstance() 里每次都会创建一个新的对象 new Order()
所以需要在 getInstance() 里添加上一个判断是否instance是否已经赋过值的if语句
if(instance==null){
instance = new Order();
}
下面是更新后的测试代码
public class Order {
private Order() {
}
private static Order instance = null;
public static Order getInstance() {
if (instance == null) {
instance = new Order();
}
return instance;
}
public static void main(String[] args) {
Order ord1 = Order.getInstance();
Order ord2 = Order.getInstance();
System.out.println(ord1 == ord2);
}
}
懒汉式和饿汉式的区别:
懒汉式-->啥时候用啥时候造,在get静态方法里再去造
饿汉式-->直接在开始的创建静态对象时就创建好