设计模式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;
    }
}

单例模式代码

相关推荐
ZouZou老师10 小时前
C++设计模式之解释器模式:以家具生产为例
c++·设计模式·解释器模式
红头辣椒11 小时前
干系人与价值共识:从理解准确到执行共识的关键跨越
设计模式·需求分析
马优晨12 小时前
发布订阅模式详解
设计模式·发布订阅模式·订阅发布·发布订阅模式详解·设计模式之发布订阅
ZouZou老师14 小时前
C++设计模式之命令模式:以家具生产为例
c++·设计模式·命令模式
laocooon52385788615 小时前
C++ 设计模式概述及常用模式
开发语言·c++·设计模式
SadSunset16 小时前
(12)GoF设计模式
设计模式
化作繁星17 小时前
前端设计模式详解
前端·设计模式
ZouZou老师17 小时前
C++设计模式之责任链模式:以家具生产为例
c++·设计模式·责任链模式
赵得C18 小时前
软件设计师前沿考点精讲:新兴技术与性能优化实战
java·开发语言·分布式·算法·设计模式·性能优化
一枝小雨18 小时前
单例模式简析:C语言实现单例模式
c语言·单例模式·嵌入式