设计模式之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站找视频解决。

相关推荐
多加点辣也没关系19 分钟前
设计模式-观察者模式
观察者模式·设计模式
hssfscv36 分钟前
软件设计师下午题训练1-3题+2019上上午题错题解析 练习真题训练13
笔记·设计模式·uml
拾-光2 小时前
【Git】命令大全:从入门到高手,100 个最常用命令速查(2026 版)
java·大数据·人工智能·git·python·elasticsearch·设计模式
多加点辣也没关系5 小时前
设计模式-模板方法模式
设计模式·模板方法模式
游乐码8 小时前
Unity坦克案例疑难记录(一)
unity·单例模式
Autumn_ing9 小时前
2026实测:这5款AI生成UI工具支持Shadcn UI/Ant Design组件库
人工智能·ui·设计模式·aigc·设计规范
woniu_buhui_fei13 小时前
常用设计模式
设计模式·架构
likerhood13 小时前
设计模式 · 组合模式(Composite Pattern)
设计模式·组合模式
多加点辣也没关系13 小时前
设计模式-迭代器模式
设计模式·迭代器模式
江米小枣tonylua1 天前
从红绿灯到方向盘:TDD 在 AI 时代的新角色
前端·设计模式·ai编程