首页 > 代码库 > java基础——单例设计模式(懒汉式)

java基础——单例设计模式(懒汉式)

 1 public class Test7 { 2     // 主函数 3     public static void main(String[] args) { 4         Test7.getInstance().function(9, 81); 5     } 6  7     // 私有成员变量 8     private String name; 9     private int age;10     private static Test7 test7;11 12     private Test7() {13     }14 15     public static Test7 getInstance() {16         if (test7 == null) {// 此行主要为了提高效率17             synchronized (Test7.class) {18                 if (test7 == null) {19                     test7 = new Test7();20                 }21             }22         }23         return test7;24     }25 26     private void function(int num1, int num2) {27         System.out.println(num1 - num2);28     }29 30     public String getName() {31         return name;32     }33 34     public void setName(String name) {35         this.name = name;36     }37 38     public int getAge() {39         return age;40     }41 42     public void setAge(int age) {43         this.age = age;44     }45 }

以上代码中有一个getInstance()方法;

此方法体现了懒汉式的一个重要特征,

即:实例的产生 是在调用者调用它的时候,默认初始化(private static Test7 test7;)为空.

 

注意:在getInstance()方法中第16行if()条件语句作用仅仅是为了提高代码的效率而设置,

去掉此行代码依然可以运行,但是对于好多实例对象来调用getInstance()方法时,加上if语句明显可以提高执行速度

 

java基础——单例设计模式(懒汉式)