设计模式之GoF设计模式(单例模式

设计模式之GoF设计模式(单例模式)

现在有一个这样的业务:一个大型应用(比如一个电商网站或后台服务)需要记录日志,日志对象需要统一管理,这样就不可能创建很多个日志对象,就需要用到单例模式。

饿汉式单例模式

类加载时创建对象

java 复制代码
public class Logger {
    private Logger() {}

    private static Logger instance = new Logger();

    public static Logger getInstance(){
        return instance;
    }
}

懒汉式单例模式

第一次调用getInstance才会创建对象

java 复制代码
public class Logger {
    private Logger() {}

    private static Logger instance;

    public static Logger getInstance(){
        if (instance == null) {
            return instance = new Logger();
        }
        return instance;
    }
}

这种单例模式会有线程安全问题,比如A线程和B线程同时第一次调用了getInstance时会new出多个实例,不符合原本的预期,等之后学到了线程再解决该问题,有兴趣可以去问问AI或者B站找视频解决。

相关推荐
胡萝卜术4 小时前
从“分数打架”到“排名投票”:为什么你的ChatBI必须用RRF?
算法·设计模式·面试
亦暖筑序1 天前
Java 8老系统Browser Agent实战:三层拦截把AI操作后台变成可审计流程
java·后端·设计模式
青禾网络3 天前
Web 前端如何接入 AI 音效生成:从零到可用的完整方案
人工智能·设计模式
ZJPRENO4 天前
吃透软件开发六大设计原则,告别烂代码
设计模式
咖啡八杯4 天前
GoF设计模式——命令模式
java·设计模式·架构
花椒技术5 天前
HJPusher / HJPlayer SDK 实践:我们为什么把直播推播链路拆成一套可复用能力
设计模式·harmonyos·直播
艺艺生辉5 天前
迭代器模式-"我也想被增强for循环"
设计模式
咖啡八杯7 天前
GoF设计模式——策略模式
java·后端·spring·设计模式
槑有老呆8 天前
别再手搓 Prompt 了,那个叫"手动挡循环"
设计模式