笔记-设计模式-再学习
重温设计模式
单例模式
最常用也是最实用的单例模式
或者将实例化放到静态代码块里,本质都是一样
饿汉式的单例模式,双重检测锁
静态内部类的单例模式
静态内部类的好处:
外部类加载的时候静态内部类不会被加载,只有在调用getInstance的时候才会创建类,这样就达到了懒加载的目的
枚举单例
public class User {
//私有化构造函数
private User(){ }
//定义一个静态枚举类
static enum SingletonEnum{
//创建一个枚举对象,该对象天生为单例
INSTANCE;
private User user;
//私有化枚举的构造函数
private SingletonEnum(){
user=new User();
}
public User getInstnce(){
return user;
}
}
//对外暴露一个获取User对象的静态方法
public static User getInstance(){
return SingletonEnum.INSTANCE.getInstnce();
}
}
public class Test {
public static void main(String [] args){
System.out.println(User.getInstance());
System.out.println(User.getInstance());
System.out.println(User.getInstance()==User.getInstance());
}
}
结果为true
枚举类因为没有构造方法,所以枚举类不会被反射创建类