单例模式
保证某个类在程序中有且只有一个对象
如何控制一个类只产生一个对象?
1.创建对象是通过构造方法,若构造方法是public对于外部就可以随意创建多个对象
2.构造方法私有化,类的外部就无法随意创建对象
饿汉式设计模式
线程安全的设计模式:在类加载的时候就已经产生对象, 当调用方法时就创建完对象了
/**
* 饿汉式单例在类加载的时候就创建对象,不管外部会不会用到
* 天然的线程安全,在多线程的场景下可以保证只有一个对象
*/
public class SingleTon {
private static SingleTon st = new SingleTon();
private SingleTon(){}
public static SingleTon getSingleTon() {
return st;
}
}
public class Test01 {
public static void main(String[] args) {
SingleTon st1 = SingleTon.getSingleTon();
SingleTon st2 = SingleTon.getSingleTon();
System.out.println(st1 == st2);
}
}
懒汉式设计模式
只有第一次调用getLazySingleTon()方法时才会创建对象