知食记
搜索文档…
知食记
思维导图
归档
博客
🎃CSS
CSS基础
CSS3
SCSS
🎉JavaScript
JS 概念
JS陷阱
JS开发知识点
实现JS常见函数
实现JS 常见操作函数
JS Worker
ES6
ES6 函数
Typescript
V8
🕹️框架
Vue
Vue3
React
React-Redux
React Hooks
Nuxt
Koa2
🎯算法
算法与数据结构
🎁HTML
DOM
SVG
🏈计算机网络
浏览器
计算机网络
🥊前端生态
Webpack
Babel
Fetch
Axios
Npm
Yarn
业务开发
微前端
Hexo
🏀后端
Node
Java
Python
🕹️面试
面试真经
To-do
🤖开源
开源项目
🧸其他
Linux
Git
正则
设计模式
简单工厂模式
抽象工厂模式
单例模式
装饰器模式
适配器模式
代理模式
观察者模式
发布-订阅模式
观察者模式与发布-订阅模式的区别是什么?
单例模式
工厂模式
享元模式
计算机理论
Group 1
由
GitBook
提供支持
单例模式
定义
保证一个类仅有一个实例,并提供访问此实例的全局访问点。
单例模式属于创建型模式。
使用场景
如果一个类负责连接数据库的线程池、日志记录逻辑等等,此时需要单例模式来保证对象不被重复创建,以达到降低开销的目的。
JavaScript代码实现
1
const Singleton = function() {};
2
3
Singleton.getInstance = (function() {
4
// 由于es6没有静态类型,故闭包: 函数外部无法访问 instance
5
let instance = null;
6
return function() {
7
// 检查是否存在实例
8
if (!instance) {
9
instance = new Singleton();
10
}
11
return instance;
12
};
13
})();
14
15
let s1 = Singleton.getInstance();
16
let s2 = Singleton.getInstance();
17
18
console.log(s1 === s2);
Copied!
以前
观察者模式与发布-订阅模式的区别是什么?
下一个
工厂模式
最近更新
2yr ago
复制链接
内容
定义
使用场景
JavaScript代码实现