什么是单例模式?

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

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

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

相关推荐
风逸hhh17 分钟前
python打卡day46@浙大疏锦行
开发语言·python
火兮明兮41 分钟前
Python训练第四十三天
开发语言·python
季鸢1 小时前
Java设计模式之状态模式详解
java·设计模式·状态模式
@yanyu6661 小时前
springboot实现查询学生
java·spring boot·后端
ascarl20101 小时前
准确--k8s cgroup问题排查
java·开发语言
magic 2452 小时前
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
java
爱敲代码的憨仔2 小时前
分布式协同自动化办公系统-工作流引擎-流程设计
java·flowable·oa
纪元A梦2 小时前
分布式拜占庭容错算法——PBFT算法深度解析
java·分布式·算法
卿着飞翔2 小时前
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
java·rabbitmq·java-rabbitmq
fpcc2 小时前
跟我学c++中级篇——理解类型推导和C++不同版本的支持
开发语言·c++