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

设计模式1-单例模式

设计模式

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

单例模式

定义

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

场景

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

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

        ● 数据库连接

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

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

代码

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;}
}

单例模式代码

http://www.xdnf.cn/news/18256.html

相关文章:

  • PyTorch如何修改模型(魔改)?/替换模型,一般除了注意输入输出一致,还有其他要修改的吗?
  • 【Python】新手入门:python面向对象编程的三大特性是什么?python继承、封装、多态的特性都有哪些?
  • IT运维背锅权限泄露?集中式管控如何化解风险?
  • postman+newman+jenkins接口自动化
  • 次短路P2865 [USACO06NOV] Roadblocks G题解
  • cobbler
  • 换根DP(P3478 [POI 2008] STA-StationP3574 [POI 2014] FAR-FarmCraft)
  • Linux I/O 多路复用实战:深入剖析 Select 与 Poll
  • 在 Ubuntu Linux LTS 上安装 SimpleScreenRecorder 以录制屏幕
  • GPT-5 上线风波深度复盘:从口碑两极到策略调整,OpenAI 的变与不变
  • Jupyter Notebook 的终极进化:VS Code vs PyCharm,数据科学的IDE王者之争
  • 全球首款 8K 全景无人机影翎 A1 发布解读:航拍进入“先飞行后取景”时代
  • 扩展卡尔曼滤波(EKF)的一阶泰勒展开(雅可比矩阵)详解
  • 8 月中 汇报下近半个月都在做些什么
  • E10自定义统一认证+人员同步
  • C++高频知识点(三十)
  • IPSec安全概述
  • 【运维进阶】Linux 正则表达式
  • CANoe使用介绍
  • 副文本编辑器
  • 23种设计模式——构建器模式(Builder Pattern)详解
  • PDF如何在Adobe Acrobat 中用OCR光学识别文档并保存可编辑文档
  • week3-[分支嵌套]方阵
  • 【39页PPT】大模型DeepSeek在运维场景中的应用(附下载方式)
  • SpringBoot集成WebService
  • PostgreSQL 中的金钱计算处理
  • SpringBoot 整合 Langchain4j RAG 技术深度使用解析
  • [论文阅读] 人工智能 + 软件工程 | 从用户需求到产品迭代:特征请求研究的全景解析
  • 微美全息(NASDAQ:WIMI):以区块链+云计算混合架构,引领数据交易营销科技新潮流
  • STM32学习笔记16-SPI硬件控制