笔记-设计模式-再学习

重温设计模式

单例模式

最常用也是最实用的单例模式


或者将实例化放到静态代码块里,本质都是一样

饿汉式的单例模式,双重检测锁

静态内部类的单例模式

静态内部类的好处:
外部类加载的时候静态内部类不会被加载,只有在调用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

枚举类因为没有构造方法,所以枚举类不会被反射创建类

原文地址:https://www.cnblogs.com/Baronboy/p/14691358.html