单例模式

Unity框架学习【单例模式基类】{个人单例模式总结,框架单例模式总结} 这三天花了点时间,学习了B站唐老师的框架,里面有很多知识都有很强的复用性。 即,完成一次之后的很多工作都可以节省,而且优化整个程序的结构。 首先就是唐老师的课程都是递进式的,也就是前面的课程会很大程度的影响到后面的课程,而单例模式,是我目前使用最多的模式【要加紧学习新的设计模式】,例如在我的一本介绍《游戏设计模式》课本里面就有明确的写到。 “唯独单例模式,我们是要考虑怎么尽可能少的去使用他” 然后... 阅读详情

单例模式

一个jvm中,只能有一个实例,保证对象唯一

应用场景:  

   windows的任务管理器就是呀,小伙伴们不信可以点击下试试,看看能创建几次

   servlet 连接池 线程池  spring(默认单例)枚举  常量

为啥设置单例? 优点?  保证对象的唯一性 节约内存 方便管理 重复利用  

                          缺点? 线程安全问题 

单例模式

什么是单例

 保证一个类只有一个实例,并且提供一个访问该全局访问点

单例应用场景

1. Windows的Task Manager(任务管理器)就是很典型的单例模式(这个很熟悉吧),想想看,是不是呢,你能打开两个windows task manager吗? 不信你自己试试看哦~

2. windows的Recycle Bin(回收站)也是典型的单例应用。在整个系统运行过程中,回收站一直维护着仅有的一个实例。

3. 网站的计数器,一般也是采用单例模式实现,否则难以同步。

4. 应用程序的日志应用,一般都何用单例模式实现,这一般是由于共享的日志文件一直处于打开状态,因为只能有一个实例去操作,否则内容不好追加。

5. Web应用的配置对象的读取,一般也应用单例模式,这个是由于配置文件是共享的资源。

6. 数据库连接池的设计一般也是采用单例模式,因为数据库连接是一种数据库资源。数据库软件系统中使用数据库连接池,主要是节省打开或者关闭数据库连接所引起的效率损耗,这种效率上的损耗还是非常昂贵的,因为何用单例模式来维护,就可以大大降低这种损耗。

7. 多线程的线程池的设计一般也是采用单例模式,这是由于线程池要方便对池中的线程进行控制。

8. 操作系统的文件系统,也是大的单例模式实现的具体例子,一个操作系统只能有一个文件系统。

9. HttpApplication 也是单位例的典型应用。熟悉ASP.Net(IIS)的整个请求生命周期的人应该知道HttpApplication也是单例模式,所有的HttpModule都共享一个HttpApplication实例.

 

单例优缺点

优点:

    1.在单例模式中,活动的单例只有一个实例,对单例类的所有实例化得到的都是相同的一个实例。这样就 防止其它对象对自己的实例化,确保所有的对象都访问一个实例

    2.单例模式具有一定的伸缩性,类自己来控制实例化进程,类就在改变实例化进程上有相应的伸缩性。

    3.提供了对唯一实例的受控访问。

    4.由于在系统内存中只存在一个对象,因此可以 节约系统资源,当 需要频繁创建和销毁的对象时单例模式无疑可以提高系统的性能。

    5.允许可变数目的实例。

    6.避免对共享资源的多重占用。

缺点:

    1.不适用于变化的对象,如果同一类型的对象总是要在不同的用例场景发生变化,单例就会引起数据的错误,不能保存彼此的状态。

    2.由于单利模式中没有抽象层,因此单例类的扩展有很大的困难。

    3.单例类的职责过重,在一定程度上违背了“单一职责原则”。

    4.滥用单例将带来一些负面问题,如为了节省资源将数据库连接池对象设计为的单例类,可能会导致共享连接池对象的程序过多而出现连接池溢出;如果实例化的对象长时间不被利用,系统会认为是垃圾而被回收,这将导致对象状态的丢失。

单例创建方式

  1.   饿汉式:类初始化时,会立即加载该对象,线程天生安全,调用效率高。
  2.   懒汉式: 类初始化时,不会初始化该对象,真正需要使用的时候才会创建该对象,具备懒加载功能。
  3. 静态内部方式:结合了懒汉式和饿汉式各自的优点,真正需要对象的时候才会加载,加载类是线程安全的。
  4. 枚举单例: 使用枚举实现单例模式 优点:实现简单、调用效率高,枚举本身就是单例,由jvm从根本上提供保障!避免通过反射和反序列化的漏洞, 缺点没有延迟加载。
  5. 双重检测锁方式 (因为JVM本质重排序的原因,可能会初始化多次,不推荐使用)

 

1、首先饿汉式: 类初始化时候就创建 对象。线程安全,调用效率比较高。不使用对象时候,浪费内存。

     类初始化时,会立即加载该对象,线程天生安全,调用效率高  

package com.toov5.desionModel;

public class Hungry {
    //静态变量   
    private static final Hungry instance = new Hungry(); //垃圾回收机制 不会回收 存放永久区
    
    //构造函数私有 在别的类里面 就不能new了(反射可以)
    private Hungry() {
        
    }
    //线程安全问题:
    //构造函数私有化之后 不能创建对象了 所以自己提供方法
   public static Hungry getInstance(){
       return instance;
   }
   public static void main(String[] args) {
    Hungry hungry1 = Hungry.getInstance();
    Hungry hungry2 = Hungry.getInstance();
    System.out.println(hungry1==hungry2);
} 
    
}

运行结果:

2、懒汉式 

package com.toov5.desionModel;

//类初始化时候不会创建,需要时加载。天生不安全,需要解决线程安全问题,所以效率低。
public class Lazy {
   
     private static Lazy lazy;
    //私有掉
    private Lazy(){
        
    }
    //效率低  一个线程使用
    public static synchronized Lazy getInstance(){ //synchronize 保证只有一个线程去创建了
        if (lazy==null) {  //如果没有被创建 
            lazy=new Lazy();
        }
        return lazy;  //如果创建过了
    }
    public static void main(String[] args) {
      Lazy lazy1 =    lazy.getInstance();
      Lazy lazy2 =  lazy.getInstance();
      System.out.println(lazy1==lazy2);
    }
    
}

运行结果:

 3、枚举

首先枚举,在开发中 定义常量会用到。JVM天然保障枚举是单例 ,防止反射攻击。枚举有七种创建方式,大家可以自己去看下相关的文档。有时间,我也整理一篇枚举的博文。

枚举本身是单例的,一般用于项目中定义常量。

package com.toov5.fanshe;

enum HttpEnum {

  HTTP_200(200,"successful"),
  HTTP_500(500,"faliure");

    HttpEnum(Integer httpCode, String httpMsg){
     System.out.println("我是初始化哈哈哈");
     this.httpCode=httpCode;
     this.httpMsg=httpMsg;
 }    

  private Integer httpCode;
  public Integer getHttpCode() {
    return httpCode;
}
public void setHttpCode(Integer httpCode) {
    this.httpCode = httpCode;
}
public String getHttpMsg() {
    return httpMsg;
}
public void setHttpMsg(String httpMsg) {
    this.httpMsg = httpMsg;
}
private String httpMsg;

    public static void main(String[] args) {
        System.out.println(HttpEnum.HTTP_200.httpCode);
        System.out.println(HttpEnum.HTTP_200.httpCode);
        System.out.println(HttpEnum.HTTP_500.httpCode);
        System.out.println(HttpEnum.HTTP_500.httpCode);
    }
    
    
}

运行结果:

可以看出初始化一次啊

 然后利用这个特性创建单例模式: 

使用枚举实现单例模式 优点:实现简单、枚举本身就是单例,由jvm从根本上提供保障!避免通过反射和反序列化的漏洞 缺点没有延迟加载

package com.toov5.desionModel;

public class EnumSingle {
   
    private EnumSingle(){
        
    }
    //封装方法
    public static EnumSingle getInstance(){
        return Singleton.INSTSNCE.getInstance(); //这样只会创建一次
    }
    
    //下面的枚举本身就是单例的
    static enum Singleton{   //枚举类 
        INSTSNCE;
        private EnumSingle enumSingle;
        private Singleton(){
            enumSingle=new EnumSingle();
        }
        public EnumSingle getInstance(){
            return this.enumSingle;
        }
    }
    public static void main(String[] args) {
        EnumSingle enumSingle1 =   EnumSingle.getInstance();
        EnumSingle enumSingle2 =   EnumSingle.getInstance();
        System.out.println(enumSingle1==enumSingle2);
    }
}

运行结果:

4、双重检验锁

package com.toov5.desionModel;

public class DoubleLock {

    private static volatile DoubleLock doubleLock;   //防止重排序
    
    private DoubleLock(){
        
    }
    public static DoubleLock getInstance(){  //比较饿汉模式而言的,如果在这一行加锁,效率势必会比较低  利用同步代码块
        if (doubleLock == null){   //判断一下  如果为null时候  这种情况下才会去创建对象
            synchronized (DoubleLock.class){ //静态的用 字节码文件    
                if (doubleLock==null) {  //上锁完了之后 可能没有创建完毕 所以要判断一下  但是 重排序时候 可能会导致 对象可能创建多次
                                         //所以加volitile关键字 (单线程是不会产生重排序问题)
                    doubleLock=new DoubleLock();
                }
            }

        }
        return doubleLock;   //不为空的话 会直接返回呀  多个线程去创建时候 才有有安全塞问题
    }
    
    
    
    public static void main(String[] args) {
         DoubleLock doubleLock1 = DoubleLock.getInstance();
         DoubleLock doubleLock2 = DoubleLock.getInstance();
         System.out.println(doubleLock1==doubleLock2);
    }
    
}

运行结果:

比较:

 

 

 

这里synchronize就保证了可见性了 没有必要再加 volitile关键字了  单线程里面是不会产生重排序问题 因为 只有一个线程进入执行了

 

 5、静态内部类

   饿汉式和懒汉式的各自优缺点:  

   饿汉式:天生线程安全,执行效率高,缺点占内存   如果不适用该对象也会创建 没有延迟加载的功能(懒加载)

   懒汉式: 节省内存,延迟加载的功能。线程不安全,需要加锁,那么就会导致执行效率变低。产生阻塞和等待

 

静态的内部类方式结合懒汉式和饿汉式的优点: 具备 延迟加载 天生线程安全 真正需要时候才会去创建对象   

内部类在什么时候初始化? 外部类调用内部类时候 才会初始化~

没有被初始化!

被初始化!

所以:

package com.toov5.desionModel;

public class StaticInner {

    private StaticInner(){
        
    }
    
    public static class SingleInstance{  //静态内部类 在类加载时候 不会初始化!!        
        public static final StaticInner STATIC_INNER = new StaticInner();    
    }
    
    public static StaticInner getInstance(){   
        return SingleInstance.STATIC_INNER;   
    }
    public static void main(String[] args) {
        StaticInner staticInner1 = StaticInner.getInstance();
        StaticInner staticInner2 = StaticInner.getInstance();
        System.out.println(staticInner1==staticInner2);
        
    }
    
}

运行结果:

不调用不会创建

外部类 调用内部类  才会去初始化

 

如果不需要延迟加载单例,可以使用枚举或者饿汉式,相对来说枚举性好于饿汉式。

如果需要延迟加载,可以使用静态内部类或者懒韩式,相对来说静态内部类好于懒汉式。

 

【QNX+Android虚拟化方案】12 - 设备虚拟化 之 Passthrough透传、Vdev Trap、HAB Socket 原理解析 阅读详情

相关推荐

Antlr4入门(二)基本概念解析

在上一章中(Antlr4入门(一)IDEA中Antlr的安装与使用),我们安装了Antlr,并编写运行了第一个程序“Hello world”。而在本章中,我们将学习语言类应用程序相关的重要过程、术语和数据结构。 一. 术语 语言(language)是由一系列有意义的语句组成,语句(sentence)由词组组成,词组(phrase)是由更小的子词组(subphrase)和词汇符号(vocabulary symbols)组成。 举个例子,英语就是一种语言,“Keep on going never gi.

qq_37771475的博客 5208

BlogTest1

常见数据结构题 SparseArray SparseBooleanArray = HashMap 常见设计模式 单例Builder观察者工厂代理适配器 3种常见的单例写法 饿汉式(静态常量)[可用] public class Singleton { private final static Singleton INSTANCE = new

zz_itheima的博客 489

HCIP-Cloud Service DevOps Engineer V2.0 华为认证云服务 DevOps高级工程师 章节测试题+结课测试题(模拟考试题)汇总

本文为HCIP-Cloud Service DevOps Engineer V2.0 华为认证云服务DevOps高级工程师 在线课程中所有章节测试以及结课测试(HCIP-Cloud Service DevOps Engineer模拟考试)习题和答案

gaogao0305的博客 2267

java设计模式-单例模式

1.定义单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全...

zhupanlinch的博客 157

HyperMesh实战:5种复杂载荷场景下的field映射技巧(附TCL脚本)

本文详细介绍了HyperMesh在5种复杂载荷场景下的field映射技巧,包括轴承载荷的圆柱坐标系映射、粉末压力中的切向力处理、实验数据到有限元模型的场映射、多工况载荷的组合映射以及局部细化网格的边界条件传递。通过实战案例和TCL脚本,帮助工程师高效解决有限元分析中的载荷映射难题,提升工作效率。

fanta的博客 294

windows的rancherDesktop修改镜像源

Rancher Desktop中的“Allowed Images”功能(通常在 Preferences -> Container Engine -> Allowed Images 中找到)是用来定义一个允许拉取和推送的镜像列表的规则,例如,只允许从您组织或特定的受信任的仓库中获取镜像。如果问题依旧,请提供您Rancher Desktop的版本和当前选择的容器运行时,以便进一步协助。总结一下,对于Windows上的Rancher Desktop,如果您使用默认的。,镜像源的配置通常通过一个名为。

zwjapple的专栏 2696

用Java语言实现单例模式

用Java语言实现单例模式单例模式饿汉式懒汉式线程不安全,不可用加锁,但是效率低双重校验锁枚举单例模式的实现 单例模式 单例模式 :保证一个类只能有一个实例,而且自行实例化并向整个系统提供这个实力,避免频繁创建对象,节约内存。 一般分为饿汉式和懒汉式 什么是饿汉式?懒汉式? 饿汉式:在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快。 懒汉式:在类加载时不初始化,等到第一次被使用时才初始化。 饿汉式会出现空间资源浪费的问题,不建议使用; 饿汉式 下面给出饿汉式的Java的写法 这种是比较常见的写

Become hunger become strong 1138

基于物联网技术智慧园林绿化养护管理信息平台

近几年来,随着经济不断的发展,城市面积不断的扩大,城市管理中的园林绿化工作也在这种趋势下不断的发生着深刻改变。管养企业是否按制定的管养计划严格执行?绿化事件整改是否及时到位?绿地面积是否在稳步增长?管养的效果如何?如何客观评价管养企业的管养工作?这些都是我们各级管理者需要面对的问题。   智慧园林绿化养护管理信息平台的开发思路以“考核”为核心,整个信息平台体现出“新、快、高、全、享”五个特点。   智慧园林绿化养护管理信息平台的整个开发理念为:依托五大技术手段(全球卫星定位系统技术、地理信...

Cesium的博客QQ2252224326 2459

【设计模式】单例模式(Windows版)

01、目录 目录01、目录02、浅谈设计模式03、面向对象基础3.1 面向对象三大特征3.2 面向对象中类与类的关系3.3 面向对象七大原则04、设计模式——单例模式4.1 饿汉模式4.2 懒汉模式05、总结 02、浅谈设计模式 设计模式(Design Pattern):是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性 站在巨人的肩膀上处理眼前的问题,这就是设计模式的初衷! 关于设计模式,广为人知的有23种,今天聊

Cain Xcy的博客 367

workbench拓扑优化教程_拓扑优化实例-轮毂的优化

拓扑优化实例-轮毂的优化ANSYS Workbench的新版本集成了topology optimization模块,为用户的拓扑优化提供的很好的应用。通过拓扑优化topology optimization模块的使用可以对拓扑有较好的理解,该模块拓扑优化可以简单概括为一句话:如何在合适的位置去除确定的材料使用量,而相应的刚度变化影响最小。本例以汽车轮毂为例,来确定轮毂的辐条形状。1.建立模型DM中可...

weixin_39581739的博客 3043

Android功耗系列专题理论之六:外设功耗问题分析方法

本文介绍了移动设备功耗问题的分析方法,重点针对传感器和GPU两大模块。传感器部分详细讲解了通过ADB命令获取日志、状态差异分析和单传感器隔离测试的排查方法,并给出优化建议。GPU部分从基础功耗测量、场景测试到功能模块拆解进行多维度分析。同时阐述了GNSS/GPS功耗的测试方法,包括前后台对比、星座双频拆解及SAP/DPO等特殊功能的电流分析,为移动设备功耗优化提供系统性的诊断思路。

373

【Java】利用单例模式、可变参数优化Java操作Mysql数据库、JDBC代码的写作

本文没有任何新的内容,只是设置一个Java操作Mysql数据库,让代码写得更好而已。 如同《【Java】Java中对Mysql数据库的增删改查、Java的System类》(点击打开链接)一样,工程极其简单,引入操作Mysql数据库相应的jar之后就一个DB类, 下文将对test数据库中的一张usertable表进行操作,usertable表的结构如下: 这张表用来做例子都用烂

编程记录,亲测有效 4145

Python爬虫实战:爬取小红书数据做爆款分析,我破解了签名加密+移动端反爬(附完整代码)

爬取小红书数据的核心,不是“简单的HTTP请求”,而是“理解移动端接口的加密逻辑和反爬规则”——从x-s/x-t签名破解到移动端UA伪装,再到行为模拟,每一步都是对移动端爬虫的深度理解。这套方案的价值在于,不仅能稳定抓取小红书数据,还能从数据中拆解出有价值的爆款特征,真正把“数据”变成“洞察”。对程序员来说,小红书爬虫不仅是技术练手,更是了解新媒体平台数据逻辑的窗口。希望这篇分享能帮到做新媒体分析或爬虫进阶的小伙伴,也欢迎在评论区交流小红书反爬和爆款分析的更多技巧!

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2058

单例模式的实现

当在应用程序中需要控制资源共享、进行配置管理和日志记录等操作时,一种常见的需求是希望通过一个全局访问点,让程序无论在哪个地方,只要能够访问到,就可以通过这个全局访问点,来获取相关实例信息。对于懒汉式单例模式,单例实例在第一次被使用时构建,延迟初始化,相对资源利用率高。如果学过Spring的小伙伴,应该清楚,Spring框架中,默认情况下管理的Bean是单例的,这也意味着Spring容器在创建和管理Bean时,每个Bean只会有一个实例,并且这个实例会被所有需要它的地方共享。:避免重复创建实例,节省资源。

Hardy Army的博客 1613

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

C++单例模式详解

C++ 单例模式详解,懒汉式单例,饿汉式单例

Marvek的博客 5329

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

单例模式笔记

单例模式 简述: 单例模式是一种常用的软件设计模式。这种模式属于创建型模式,在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例,该模式的类提供了一种访问其唯一的对象的方式。 饿汉式单例模式 简述:在类加载之前唯一实例对象已经创建完成 实现类: package com.wu.Singleton; public class SingletonDemo { private String name; private int age ; //

一夜星尘 9383

什么是单例模式?单例模式详解

个人印象笔记地址:https://app.yinxiang.com/fx/eaa22560-57a4-4554-8de8-b5f254090d37 单例模式介绍 1.1 模式说明 实现1个类只有1个实例化对象 & 提供一个全局访问点 1.2 作用(解决的问题) 保证1个类只有1个对象,降低对象之间的耦合度 1.3 工作原理 在Java中,我们通过使用对象(类实例化后)来操作这些类,类实例化是通过它的构造方法进行的,要是想实现一个类只有一个实例化对象,就要对类的构造方法做改变。 单

weixin_43373417的博客 2125

单例模式《单例模式概念、什么时候能用到单例模式、单例模式的好处》

坚持原创输出,点击蓝字关注我吧作者:清菡博客:oschina、云+社区、知乎等各大平台都有。目录一、单例模式的概念1.类每次实例化的时候都会创建一个新的对象,如果要求类只能被实例化一次该怎...

清菡的博客 1480

单例模式以及反射对单例模式的破坏及防御

单例模式是 Java 中非常重要的设计模式,它确保了类只有一个实例,但由于 Java 的反射机制,饿汉式、懒汉式、双重校验锁和静态内部类实现的单例模式都可以被反射轻松破坏。通过在构造方法中添加实例校验机制,我们可以有效防止反射创建多个实例。饿汉式:即使不使用,也会提前加载单例,浪费内存。懒汉式:通过实现线程安全的懒加载,但并发性能较低。双重校验锁:提高了并发性能,使用volatile防止指令重排问题。静态内部类:相较于双重校验锁更加优雅,实现了懒加载和线程安全。

weixin_54574094的博客 1904

单例模式及破解单例模式

单例模式:一个类自己负责创建自己的对象,同时确保系统中该对象只会被创建一个! 特点: 在整个系统中只能有一个该类的实例(必须确保构造器私有,避免其他类new出该类的对象) 他必须自行创建这个实例(在代码对应的类中自己编写实例化逻辑) 它必须自行向整个系统提供这个实例(对外提供实例化方法,外面的类想要这个实例的对象随时可以调用) 单例模式的饿汉式 public class Person { private String name; private String age; //

weixin_49149614的博客 679

小谈单例模式 | 单例模式的八种写法?

看了这篇文章,你能和面试官畅谈单例模式一、前言二、单例模式最通俗的解释来一个简单的例子三、实现单例模式的8种写法1.饿汉式(静态常量)(可用)2.饿汉式(静态代码块)(可用)3.懒汉式(线程不安全)(不可用)4.懒汉式(线程安全)(不推荐)5.懒汉式(线程不安全)(不可用)6.懒汉式(双重检查)(推荐面试使用)7.懒汉(静态内部类方式)(可用)8.枚举 推荐在项目中使用四、常见面试问题五、关于几种...

qq_35764460的博客 1690

java单例模式、Scala单例模式

单例java的两种单例模式Scala的单例模式 java的两种单例模式 /** * 单例 * * 一个类只能创建一个对象, * 定义的步骤: * 恶汉式: * 1、私有构造器 * 2、提供一个public的static的返回值为本类引用的方法 * 3、为了给第2步中提供实例,创建一个private的s...

Baiyabai的博客 1236

什么是单例模式

单例模式: 1.保证类在内存中只能有一个对象 单例模式分为: 1.懒汉式:类一加载就创建对象 2.饿汉式:用的时候,才去创建对象 相关经验: 饿汉式 (是不会出现问题的单例模式) 懒汉式 (可能会出现问题的单例模式) (1.)懒加载(延迟加载) (2.)线程安全问题 1.)是否多线程环境 是 2.)是否有共享数据 是 3.)是否有多条语句操作共享数据 是 举例: 1.饿汉模...

Good_Luck_Li的博客 7758

单例模式的应用

单例模式定义: 单例模式(Singlleton Pattern) 是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。 一、饿汉式 优点:执行效率高,性能高,没有任何的锁 缺点:某些情况下,可能会造成内存浪费 二、懒汉式 优点:节省了内存 缺点:线程不安全的问题 三、线程式 四、 ...

qq_43170213的博客 1981

单例模式及单例模式的应用

单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。 ...

xpdbaba的博客 577
上一篇: 反射机制
下一篇: 简单工厂模式
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值