JS设计模式---(单例模式篇)
保证一个类只有一个实例,就叫做单例模式
应用场景:
vuex
弹窗
问题来了:如果保证一个类只有一个实例呢?
我们先看正常情况下的创建实例
class singleClass{single(){console.log('------------')}
}
const s1 = new singleClass()
const s2 = new singleClass()console.log(s1 === s2) //false
我们分别new了s1和s2,s1和s2不相等,显然它们之间是没有联系的,相互独立的。如果是单例模式,要让它们相同要怎么做呢?按照正常思路应该是去判断是否有实例了,有的话就返回,没有的话就新建,让我们看下代码怎么写
class singleClass{single(){console.log('------------')}static getInstance(){//判断是否之前创建过实例,有的话就return 没有就创建一个if(!singleClass.instance) singleClass.instance = new singleClass()return singleClass.instance}
}
const s1 = singleClass.getInstance()
const s2 = singleClass.getInstance()console.log(s1 === s2)//true
还有一种方法用闭包的方法
class singleClass{single(){console.log('------------')}
}
singleClass.getInstance = (function() {// 定义自由变量instance,模拟私有变量let instance = nullreturn function() {// 判断自由变量是否为nullif(!instance) {// 如果为null则new出唯一实例instance = new singleClass()}return instance}
})()
const s1 = singleClass.getInstance()
const s2 = singleClass.getInstance()console.log(s1 === s2)//true
JS设计模式---(单例模式篇)相关推荐
- 2023-01-26 JS设计模式-单例模式:单例模式的原理和实现,懒汉模式和饿汉模式,单例模式实现登录框
文章目录 1.什么是单例模式? 介绍 特点 结构 2.如何实现一个单例模式? 思路 实现代码 3.单例模式的优缺点 4.懒汉模式和饿汉模式 懒汉模式:一开始不会实例化,什么时候用才new出来实例化 饿 ...
- [转]JS设计模式-单例模式(二)
单例模式是指保证一个类仅有一个实例,并提供一个访问它的全局访问点. 单例模式是一种常用的模式,有一些对象往往只需要一个,比如线程池.全局缓存.浏览器中的window对象等.在javaScript开发中 ...
- Java设计模式(七大原则和单例模式篇)
Java设计模式Ⅰ 1. Java设计模式的概述 1.1 设计模式的目的及重要性 1.2 设计模式的7大原则 1.2.1 单一职责原则 1.2.2 接口隔离原则 1.2.3 依赖倒置原则 1.2.4 ...
- js observer 添加_简单了解4种JS设计模式
阅读本文约需要5分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了15款有用前端开发的ST插件的知识,今天跟大家分享下4种 ...
- Node.js Stream - 基础篇
背景 在构建较复杂的系统时,通常将其拆解为功能独立的若干部分.这些部分的接口遵循一定的规范,通过某种方式相连,以共同完成较复杂的任务.譬如,shell通过管道|连接各部分,其输入输出的规范是文本流. ...
- 炒冷饭系列:设计模式 单例模式
2019独角兽企业重金招聘Python工程师标准>>> 炒冷饭系列:设计模式 单例模式 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆 ...
- 设计模式总结篇(为什么要学习设计模式,学习设计模式的好处)
版权声明:转载必须注明本文转自晓_晨的博客:http://blog.csdn.net/niunai112 在学习完设计模式后,LZ想告诉大家: 对于一名工作不久的程序员来说,学习设计模式是非常有必要的 ...
- 前端开发中常用设计模式-总结篇
本文是向大家介绍前端开发中常用的设计模式,它使我们编写的代码更容易被复用,也更容易被人理解,并且保证代码的稳定可靠性. 1.什么是设计模式 通俗来讲,就是日常使用设计的一种惯性思维. 因为对应的这种思 ...
- js设计模式笔记小结
JS 设计模式 面向对象 搭建开发环境 npm / webapck / webpack-dev-server / babel babel-core babel-loader babel-polyfil ...
- java设计模式中不属于创建型模式_23种设计模式第二篇:java工厂模式定义:工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式...
23种设计模式第二篇:java工厂模式 定义: 工厂模式是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 工厂模式主要是为创建对象提供过渡接口, ...
最新文章
- android studio查看字节码,使用Android studio查看Kotlin的字节码教程
- docker的安全管理与TLS/LLS加密通信
- mysql设计技巧_MySQL库表设计小技巧
- 用SAP ALV Integrated Data Access展示CDS view数据的一些调试截图
- 晨风机器人突破限制_厉害了!工程建设领域首创!会自动测量、自动调平的测量机器人...
- django-模板的功能与配置
- 简单工厂和 工厂设计模式--抽象工厂模式--Java实现
- Socket Tools的使用
- python pip工具安装教程
- java开发小公司跳槽华为od笔试面试过程
- 为什么你在互联网上搞不到钱?
- 初探MUI制作微信APP页面(二)
- 珍惜能在公司上班的每一天——2022年个人工作总结
- 华为认证网络工程师认证考试笔试题
- 1028 人口普查(JAVA)
- 3 x 10的python表达式_python3.x 正则表达式的应用
- 上海亚商投顾早餐FM/0815多家央企拟从纽交所退市
- 信息系统项目管理师-项目成本管理
- 15款最好用的思维导图(心智图 )工具
- Spring MVC数据绑定 ----从入门到精通篇(三) POJO数据类型的绑定和自定义数据绑定