什么是单例模式?

单例模式,属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例(根据需要,也有可能一个线程中属于单例,如:仅线程上下文内使用同一个实例)

数学与逻辑学中,singleton定义为"有且仅有一个元素的集合"。

单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):"保证一个类仅有一个实例,并提供一个访问它的全局访问点。"

Java中单例模式定义:"一个类有且仅有一个实例,并且自行实例化向整个系统提供。"

Java单例模式例子

1public class Singleton { 2 private Singleton(){ 3 } 4 private static volatile Singleton instance = null; 5 public static Singleton getInstance() { 6 if (instance == null) { 7 synchronized(Singleton.class) { 8 if (instance == null) { 9 instance = new Singleton(); 10 } 11 } 12 } 13 return instance; 14 } 15}

单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进行实例化开始。因此需要用一种只允许生成对象类的唯一实例的机制,"阻止"所有想要生成对象的访问。使用工厂方法来限制实例化过程。这个方法应该是静态方法(类方法),因为让类的实例去生成另一个唯一实例毫无意义

相关推荐
消失的旧时光-19438 分钟前
深入理解 Java 线程池(二):ThreadPoolExecutor 执行流程 + 运行状态 + ctl 原理全解析
java·开发语言
咖啡续命又一天11 分钟前
Trae CN IDE 中 Python 开发的具体流程和配置总结
开发语言·ide·python·ai编程
哈哈老师啊12 分钟前
Springboot学生综合测评系统hxtne(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·数据库·spring boot
4311媒体网16 分钟前
帝国cms调用文章内容 二开基本操作
java·开发语言·php
GSDjisidi30 分钟前
东京IT软件会社-(株)GSD|多种技术栈募集,高度人才+20分
开发语言·面试·职场和发展
zwxu_35 分钟前
Nginx NIO对比Java NIO
java·nginx·nio
程序员zgh1 小时前
Linux系统常用命令集合
linux·运维·服务器·c语言·开发语言·c++
獭.獭.2 小时前
C++ -- STL【unordered_set与unordered_map的实现】
开发语言·c++·unordered_map·unordered_set
可观测性用观测云2 小时前
Pyroscope Java 接入最佳实践
java
山海青风2 小时前
语音合成 - 用 Python 合成藏语三大方言语音
开发语言·python·音视频