单例模式可以被破坏

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

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

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

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

解决:在Sinleton中增加readResolve方法

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

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

相关推荐

  1. 模式可以破坏

    2024-04-26 01:50:02       64 阅读
  2. 模式模板

    2024-04-26 01:50:02       43 阅读
  3. 模式【C#】

    2024-04-26 01:50:02       54 阅读
  4. python模式

    2024-04-26 01:50:02       62 阅读
  5. 模式详解

    2024-04-26 01:50:02       61 阅读
  6. 模式学习

    2024-04-26 01:50:02       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-26 01:50:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-26 01:50:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-26 01:50:02       82 阅读
  4. Python语言-面向对象

    2024-04-26 01:50:02       91 阅读

热门阅读

  1. Quick Review for Mysql

    2024-04-26 01:50:02       24 阅读
  2. 3D抓取算法的网络结构原理及作用

    2024-04-26 01:50:02       30 阅读
  3. 华为OD-C卷-开源项目热榜[100分]Python3-100%

    2024-04-26 01:50:02       26 阅读
  4. 手写一个民用Tomcat (06)

    2024-04-26 01:50:02       27 阅读
  5. 仿真-Carla初识-运行

    2024-04-26 01:50:02       33 阅读
  6. Redis学习(三)| Redis高可用和容错机制详解

    2024-04-26 01:50:02       33 阅读
  7. 华纳云:怎么防止租用服务器的数据丢失?

    2024-04-26 01:50:02       30 阅读
  8. 人大金仓数据库的内容和目的

    2024-04-26 01:50:02       29 阅读
  9. 基于token进行登录,每次请求携带token

    2024-04-26 01:50:02       33 阅读
  10. oracle_申明与赋值

    2024-04-26 01:50:02       34 阅读