单例设计模式
A:单例设计思想
保证类在内存中只有一个对象
B:如何实现类在内存中只有一个对象呢?
构造私有
本身提供一个对象
通过公共的方法让外界访问
C:案例演示:
单例设计模式中:
饿汉式
懒汉式
饿汉式:当这个类一被加载,就在内存中创建了一个对象
1.保证内存中只有一个对象(构造私有)
2.在本类中创建一个该类的对象
3.创建一个公共的访问方式给外界获取该对象
1 public class SingleInstanceDemo { 2 private SingleInstanceDemo(){} 3 4 //静态的随着类的加载而加载 5 private static SingleInstanceDemo instance = new SingleInstanceDemo(); 6 7 //给外界提供公共的访问方式,返回该对象 8 public static SingleInstanceDemo getInstance(){ 9 return instance; 10 } 11 12 }
调用时代码:
1 public static void main(String[] args) { 2 SingleInstanceDemo instance = SingleInstanceDemo.getInstance(); 3 SingleInstanceDemo instance2 = SingleInstanceDemo.getInstance(); 4 System.out.println(instance==instance2);
5 }
懒汉式:需要的时候才去创建对象,不需要的时候不创建
1 private SingleInstanceDemo2(){} 2 3 private static SingleInstanceDemo2 instance = null; 4 5 public static SingleInstanceDemo2 getInstance(){ 6 if (instance==null) { 7 instance = new SingleInstanceDemo2(); 8 } 9 return instance; 10 }
调用代码如下
1 public static void main(String[] args) { 2 SingleInstanceDemo2 instance = SingleInstanceDemo2.getInstance(); 3 SingleInstanceDemo2 instance2 = SingleInstanceDemo2.getInstance(); 4 System.out.println(instance==instance2); 5 }