1.饿汉单例模式:
1.使用饿汉单利模式,实现单利类
2.私有化构造器
3.饿汉单利是在对象获取前,对象已经提前准备好了
4.这个对象只能准备一个所以定义静态成员变量
package com.yuyang.singleinstance;
public class SingleInstance1 {
/**
* 使用饿汉单利模式,实现单利类
* 私有化构造器
*/
private SingleInstance1() {
/**
* 饿汉单利是在对象获取前,对象已经提前准备好了
* 这个对象只能准备一个所以定义静态成员变量
*/
}
public static SingleInstance1 instance=new SingleInstance1();
}
package com.yuyang.singleinstance;
public class Test1 {
//目标:理解恶汉单例模
public static void main(String[] args) {
SingleInstance1 s1= SingleInstance1.instance;
SingleInstance1 s2= SingleInstance1.instance;
System.out.println(s1==s2);
}
}
2.懒汉单例模式 :
1.定义一个类,私有化构造器
2.定义一个静态成员变量存储一个对象(私有)
3.提供一个返回单例对象的方法
package com.yuyang.singleinstance;
public class SingleInstance2 {
private SingleInstance2(){
//1.私有化构造器
//2.定义一个静态成员变量
//3.只加载一次,只有一份
}
private static SingleInstance2 instance;
/**
* 提供一个方法对外返回单例对象
*/
public static SingleInstance2 getInstance(){
if(instance==null){
//第一次拿对象,此时需要创建对象。
instance=new SingleInstance2();
}
return instance;
}
}
package com.yuyang.singleinstance;
public class Test2 {
SingleInstance2 s=SingleInstance2.getInstance();
}