当前位置: 首页 > article >正文

java学习 单例模式

一.设计模式

1.1 概述

代表了最佳实践方式,通常被有经验的面向对象的软件开发工作人员采用 ​ 是众多有经验的开发人家,经过很长时间的使用和错误总结出来的,用来解决一系列特定问题 ​ 它不是语法规范,而且一套用来提高代码的复用性、可读性、可维护性、鲁棒性及安全性的解决方案 ​ 目前比较成熟的有23种

二.单例模式

2.1 目的

多次获取,只创建一个实例化对象,获取到的是同一个对象

2.2 创建思路

1.构造方法私有化,让外部无法创建对象
2.对外提供一个用于获取对象的静态方法
3.提供一个静态变量,保存创建的对象

2.3 应用场景

1.当类的创建成本较高或实例化过程复杂时,适合使用单例模式。
2.当一个类需要在整个系统中提供唯一的全局访问点,如配置管理、数据库连接池等。
3.当需要频繁访问且无需多个实例的对象,如缓存、日志等。

3.2.4 两种模式

1.懒汉模式 懒汉式属于一种延迟加载的单例模式,它的特点是在第一次使用时创建实例对象,而不是在类加载时就创建。

public static Singleton{
    private Singleton(){} 
    private static Singleton obj = null;
    
    public static Singleton getlnstance(){
        if(obj == null){
            obj = new Singleton();
        }
        return obj;
    }
}

2.饿汉模式 饿汉式是一种在类加载时就创建实例的单例模式。它的特点是无论是否会被使用到,实例对象都在类加载时被创建。

public static Singleton{
    private Singleton(){} 
    private static Singleton obj = new Singleton();
    
    public static Singleton getlnstance(){
        return obj;
    }
}

http://www.kler.cn/a/470382.html

相关文章:

  • AnaConda下载PyTorch慢的解决办法
  • 9. C 语言 循环控制结构详解
  • C# 检查一个字符串是否是科学计数法格式字符串 如 1.229266E+01
  • Which CAM is Better for Extracting Geographic Objects? A Perspective From参考文献
  • 4进货+后台事务
  • uniapp中判断设备类型
  • 11-Gin 中的 Cookie --[Gin 框架入门精讲与实战案例]
  • vue.js 自定义指令-基础语法
  • 大数据安全需求分析与安全保护工程
  • 【PyTorch入门】 PyTorch不同优化器的比较
  • Netty中用了哪些设计模式?
  • 云计算安全需求分析与安全防护工程
  • windows下,golang+vscode+delve 远程调试
  • 安卓漏洞学习(十八):Android加固基本原理
  • PHP零基础入门笔记
  • Vue的后端之一,Django
  • 【大数据】(选修)实验4 安装熟悉HBase数据库并实践
  • 2台ubuntu之间scp
  • QPainter,QPen,QBrush详解
  • Ruby语言的数据结构
  • 微信小程序中调用阿里云 OSS(Object Storage Service)上传文件
  • 微软发布2025年AI预测:AI Agents将彻底改变工作方式
  • Ant Design Pro写项目的总结经验(react)
  • Redis中的Red Lock/Redis锁
  • K8s集群中,Worker 节点误执行了 kubeadm init
  • ip属地不是唯一的吗怎么改