javase懒汉式:单例设计模式:(因为我们最开始没有初始化该对象,后边要调用public方法的时候才初始化的,所以的延迟加载,叫懒汉式 步骤如下: 1.创建该类,然后声明一个对象,还没有初始化 2.private其构造函数,使得其他类不能创建该类对象 3.设置一个public方法,该方法里面有获得实例对象的方法,这个时候才初始化最开始声明的对象。 (补充第三步,利用双判断方式来解决效率低问题(减少多次判断同步锁)) |
package 设计模式.single; public class SingleModel2 { private static SingleModel2 sm2 = null; private SingleModel2() { }; public static SingleModel2 getInstance() { if (sm2 == null) { synchronized (SingleModel.class) { if (sm2 == null) { sm2 = new SingleModel2(); } } } return sm2; } }
2.创建测试类:
package 设计模式.single; public class SingleModelTest { public static void main(String[] args) { // SingleModel sm1 = SingleModel.getSingleModel(); // SingleModel sm2 = SingleModel.getSingleModel(); // System.out.println("饿汉式的两个对象是 : "+(sm1 == sm2)); SingleModel2 sm3 = SingleModel2.getInstance(); SingleModel2 sm4 = SingleModel2.getInstance(); System.out.println("懒汉式单例设计模式的两个对象是 : " + (sm3 == sm4)); } }
3.控制台输出:
懒汉式单例设计模式的两个对象是 : true |