当前位置:首页>>随笔

单例设计模式-反射破坏设计模式

学习

admin

单例防的是正常new对象 

但是反射不讲道理:它能直接找到你的私有构造方法,强行开权限,无视单例规则,直接创建新对象。


1.找到这个类(房子)

2.获取无参构造方法对象(门锁)

3.取消访问检查(暴力开锁)


/*

 Class clazz = Singleton.class;

      Constructor constructor = clazz.getDeclaredConstructor();

      constructor.setAccessible(true);

*/

解决方法是 加一个flag判断是不是第一次创建 不是的话抛出异常 然后加一个同步锁 解决多线程问题


返回顶部