设计模式1-单例模式

设计模式

设计模式本质上就是一种被广泛认可的、可复用的编程思想和经验总结,它提供了解决特定问题的"最佳实践"模板。(就是众多程序员的经验、总结出来的一套模版或者是思想)

单例模式

定义

确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,避免资源浪费。

场景

● api调用需要写appkey和appSecret的配置类

● 日志系统中的日志类,日志的写入(IO)

● 数据库连接

● 需要定义大量的静态常量和静态方法(如枚举类或者常量类)

● 应用程序的上下文缓存信息APPContext

代码

java 复制代码
class Singleton {

    //懒汉式
    private static Singleton instance = null;
    //禁止外部
    private Singleton(){}
    //懒汉式1  线程不安全模式
    public static Singleton getInstance_ThreadNotProtect(){
        if(instance == null){
            instance = new Singleton();
        }
        return instance;
    }

    //懒汉式2 线程安全
    public static synchronized  Singleton  getInstance_ThreadProtect(){
        if(instance == null){
            instance = new Singleton();
        }
        return instance;
    }

    //饿汉式
    //优点:实现简单,线程安全。
    //缺点:不是懒加载,如果这个实例很大且一直没被用到,会造成内存浪费。
    //为什么会造成内存浪费:这行代码在类初始化时执行,如果没有在后续使用那么这个就造成了无法回收
    private static Singleton singleton = new Singleton();
    //
    public static Singleton getSingleton(){
        return singleton;
    }
}

单例模式代码

相关推荐
大飞pkz17 小时前
【设计模式】备忘录模式
开发语言·设计模式·c#·备忘录模式
charlie11451419118 小时前
精读C++20设计模式——结构型设计模式:享元模式
c++·笔记·学习·设计模式·享元模式·c++20
charlie11451419121 小时前
精读C++20设计模式:结构型设计模式:装饰器模式
笔记·学习·设计模式·程序设计·c++20·装饰器模式
charlie11451419121 小时前
精读C++20设计模式——行为型设计模式:解释器模式
c++·学习·设计模式·解释器模式·c++20
StevenGerrad1 天前
【读书笔记】架构整洁之道 P2~3 编程范式&设计原则
设计模式·架构·软件工程
大飞pkz2 天前
【设计模式】迭代器模式
开发语言·设计模式·c#·迭代器模式
稚辉君.MCA_P8_Java2 天前
DeepSeek Java 单例模式详解
java·spring boot·微服务·单例模式·kubernetes
zero13_小葵司2 天前
在不同开发语言与场景下设计模式的使用
java·开发语言·javascript·设计模式·策略模式
坐不住的爱码2 天前
单例模式入门
单例模式
CoderIsArt2 天前
四种对象型创建模式:抽象工厂、 build模式、原型ProtoType与单例模式
单例模式·原型模式