🗒️Day31【概念解析】单例模式
00 分钟
2023-10-22
2023-10-27
type
status
date
slug
summary
tags
category
icon
password

概念定义

中文名称:单例模式/单态模式/单件模式
英文名称:singleton pattern
出处
定义
中国大百科全书
一种保证一个类只有一个实例,并提供一个全局性的访问点的设计模式。又称单态模式单件模式
设计模式
单例模式是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。
百度百科
单例模式,属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例
维基百科
In software engineering, the singleton pattern is a software design pattern that restricts the instantiation of a class to a singular instance. 【在软件工程中,单例模式是一种将类的实例化限制为单个实例的软件设计模式。】

复述展开

What is Singleton?

概念延申:单例(singleton )在不同领域的概念?
在科学技术领域下:
  • 数学领域
    • 一个只有一个元素的集合
  • 计算机领域
    • 单例模式(singleton pattern),一种设计模式
    • 单例绑定(singleton bound),用于编码理论
    • 单例变量(singleton variable),仅引用一次的变量
  • 社会科学领域
    • singleton,一个假设的世界秩序,只有一个决策机构
    • singleton,一个在语言学中不是双子的辅音
    • singleton,指非双胞胎或其他多胞胎的,也就是单胎人士
📌
singleton,用人话说就是,作为名词时,在某个特定领域,只有一类的事物,可以是政府机构、辅音、人;作为形容词时,表示某样事物在某种特定领域下,有且只有一个,具有全局或者当前的唯一性

What is Singleton Pattern

单例模式是一种创建型的设计模式,通过使用单例模式,可以保证一个类在某个场景下,有且只有一个实例存在,作为全局唯一的节点。

Why is Singleton Pattern

为什么要设计?
  1. 最常见的原因是控制某些共享资源 (例如数据库或文件) 的访问权限。
  1. 保证用户访问都是同一个资源。
 

单例模式架构

notion image
所有单例的实现都包含以下两个相同的步骤:
  • 将默认构造函数设为私有, 防止其他对象使用单例类的 new运算符。
  • 新建一个静态构建方法作为构造函数。 该函数会 “偷偷” 调用私有构造函数来创建对象, 并将其保存在一个静态成员变量中。 此后所有对于该函数的调用都将返回这一缓存对象。
如果你的代码能够访问单例类, 那它就能调用单例类的静态方法。 无论何时调用该方法, 它总是会返回相同的对象。

代码实现

单线程单例模式
多线程单例模式
线程安全的单例模式
懒汉模式
饥汉模式

理解体会

单例模式使用在各种语言中都非常常见,像Java中的logging,thread pool。
虽然单例模式很常见,但是它实际上被很多开发者认为是反模式,因为违反了单一职责原理。所以现在,在一些语言中,也在慢慢减少使用单例模式。
在具体使用上,如何需要对共享变量(数据库、文件管理)进行使用,可以使用单例模式,全局共享同一个。
 
📌
快速跳转链接
【概念解析】启动
【概念解析】Day 1 - 10
【概念解析】Day 11 - 20
【概念解析】Day 21 - 30
【概念解析】Day 31 - 40
【概念解析】Day 41 - 50
【概念解析】Day 51 - 60
【概念解析】Day 61 - 70
【概念解析】Day 71 - 80
【概念解析】Day 81 - 90
 
上一篇
Day32【概念解析】原型模式
下一篇
Day30【概念解析】建造者模式

评论
Loading...