程序猿正式役 2023-09-06 16:16 采纳率: 0%
浏览 10

懒汉式单例模式的安全问题

懒汉式单例模式的安全问题

//懒汉式单例模式
public class LazySingleton {
    
    private LazySingleton() {
        // TODO Auto-generated constructor stub
    }
    
    private static LazySingleton lazySingleton = null;
    
    /**
     * 只声明,先不创建对象
     * @return
     */
    public LazySingleton getSingleton() {
        if(lazySingleton==null) {
            lazySingleton = new LazySingleton();
        }
        return lazySingleton;
    }
    
    public String getAccount(){
        return "公司账户";
    }

}

如果在上述代码的情况下,在其他类中获取了该对象。但是,把该对象重定向,指向了某自定义对象,如下:

public class MySingleton extends LazySingleton{
    public String getAccount(){
        return "我的账户";
    }
}

是否会造成严重安全问题?

除了把“LazySingleton"设为”final"外,还有其他解决方案吗?还是说这种模式先天存在这个缺陷?

  • 写回答

2条回答 默认 最新

  • Huazie 全栈领域优质创作者 2023-09-06 16:45
    关注

    你 new 的还是 LazySingleton 啊, 并不是 MySingleton, 所以 MySingleton 并不会影响到 LazySingleton 的使用

    评论

报告相同问题?

问题事件

  • 创建了问题 9月6日

悬赏问题

  • ¥25 LT码在高斯信道下的误码率仿真
  • ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作
  • ¥15 yolov5目标检测并显示目标出现的时间或视频帧
  • ¥15 电视版的优酷可以设置电影连续播放吗?
  • ¥50 复现论文;matlab代码编写
  • ¥30 echarts 3d地图怎么实现一进来页面散点数据和卡片一起轮播
  • ¥15 数字图像的降噪滤波增强
  • ¥15 心碎了,为啥我的神经网络训练的时候第二个批次反向传播会报错呀,第一个批次都没有问题
  • ¥15 MSR2680-XS路由器频繁卡顿问题
  • ¥15 VB6可以成功读取的文件,用C#读不了