设计模式之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 小时前
【设计模式】行为型-解释器模式
设计模式·解释器模式
砍光二叉树4 小时前
【设计模式】行为型-备忘录模式
设计模式·备忘录模式
光影少年4 小时前
实现发布订阅模式
前端·javascript·设计模式
无籽西瓜a4 小时前
【西瓜带你学设计模式 | 第十一期 - 模板方法模式】模板方法模式 —— 流程骨架与钩子实现、优缺点与适用场景
java·后端·设计模式·软件工程·模板方法模式
砍光二叉树18 小时前
【设计模式】行为型-中介者模式
设计模式·中介者模式
sanzk1 天前
工厂方法模式
设计模式
大数据新鸟1 天前
设计模式详解——外观模式
设计模式·外观模式
缘友一世1 天前
PentestGPT V2源码研究之工具层设计模式
设计模式
yinghuoAI20261 天前
电商视觉进入“无人区”:萤火AI如何用三把“手术刀”重构设计 workflow
设计模式·新媒体运营·产品运营·流量运营·用户运营·内容运营·设计规范