web自动化系列-selenium方法和属性的使用(九)

阅读 13

2024-04-22

通过反射的方式破坏单例模式

解决:在构造函数中添加判断

private Singleton() {
    if (singleton != null) {
        throw new RuntimeException("Singleton constructor is called... ");
    }
}

序列化和反序列化破坏单例模式

解决:在Sinleton中增加readResolve方法

private Object readResolve() {
    return getSingleton();
}

反序列化其实也是利用反射的构造函数来构建,但和类里面的构造函数不是同一个构造函数,所以第一个方法不可以解决反序列化的问题。

精彩评论(0)

0 0 举报