什么是单例模式?

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

数学与逻辑学中,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}

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

相关推荐
27^×5 分钟前
Linux 常用命令速查手册:从入门到实战的高频指令整理
java·大数据·linux
学Java的bb8 分钟前
后端Web实战-Spring原理
java·spring boot·spring
Tiger_shl14 分钟前
【.Net技术栈梳理】01-核心框架与运行时(CLR)
开发语言·.net
float_六七16 分钟前
IntelliJ IDEA断点调试全攻略
java·ide·intellij-idea
Tiger_shl18 分钟前
【.Net技术栈梳理】02-核心框架与运行时(GC管理)
开发语言·.net
渣哥23 分钟前
面试官最爱追问:多线程到底用来干什么?
java
阿里matlab建模师24 分钟前
【直流电机鲁棒控制】matlab实现H无穷大控制的直流电机鲁棒控制研究
开发语言·数学建模·matlab·全国大学生数学建模竞赛·美赛·科研项目
七夜zippoe26 分钟前
分布式事务性能优化:从故障现场到方案落地的实战手记(一)
java·分布式·性能优化
MediaTea33 分钟前
Python 第三方库:SymPy(符号计算工具)
开发语言·python·数学建模
qq_3564086633 分钟前
es通过分片迁移迁移解决磁盘不均匀问题
java·数据库·elasticsearch