保证一个类只有一个实例,就叫做单例模式

应用场景:
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设计模式---(单例模式篇)相关推荐

  1. 2023-01-26 JS设计模式-单例模式:单例模式的原理和实现,懒汉模式和饿汉模式,单例模式实现登录框

    文章目录 1.什么是单例模式? 介绍 特点 结构 2.如何实现一个单例模式? 思路 实现代码 3.单例模式的优缺点 4.懒汉模式和饿汉模式 懒汉模式:一开始不会实例化,什么时候用才new出来实例化 饿 ...

  2. [转]JS设计模式-单例模式(二)

    单例模式是指保证一个类仅有一个实例,并提供一个访问它的全局访问点. 单例模式是一种常用的模式,有一些对象往往只需要一个,比如线程池.全局缓存.浏览器中的window对象等.在javaScript开发中 ...

  3. Java设计模式(七大原则和单例模式篇)

    Java设计模式Ⅰ 1. Java设计模式的概述 1.1 设计模式的目的及重要性 1.2 设计模式的7大原则 1.2.1 单一职责原则 1.2.2 接口隔离原则 1.2.3 依赖倒置原则 1.2.4 ...

  4. js observer 添加_简单了解4种JS设计模式

    阅读本文约需要5分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了15款有用前端开发的ST插件的知识,今天跟大家分享下4种 ...

  5. Node.js Stream - 基础篇

    背景 在构建较复杂的系统时,通常将其拆解为功能独立的若干部分.这些部分的接口遵循一定的规范,通过某种方式相连,以共同完成较复杂的任务.譬如,shell通过管道|连接各部分,其输入输出的规范是文本流. ...

  6. 炒冷饭系列:设计模式 单例模式

    2019独角兽企业重金招聘Python工程师标准>>> 炒冷饭系列:设计模式 单例模式 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆 ...

  7. 设计模式总结篇(为什么要学习设计模式,学习设计模式的好处)

    版权声明:转载必须注明本文转自晓_晨的博客:http://blog.csdn.net/niunai112 在学习完设计模式后,LZ想告诉大家: 对于一名工作不久的程序员来说,学习设计模式是非常有必要的 ...

  8. 前端开发中常用设计模式-总结篇

    本文是向大家介绍前端开发中常用的设计模式,它使我们编写的代码更容易被复用,也更容易被人理解,并且保证代码的稳定可靠性. 1.什么是设计模式 通俗来讲,就是日常使用设计的一种惯性思维. 因为对应的这种思 ...

  9. js设计模式笔记小结

    JS 设计模式 面向对象 搭建开发环境 npm / webapck / webpack-dev-server / babel babel-core babel-loader babel-polyfil ...

  10. java设计模式中不属于创建型模式_23种设计模式第二篇:java工厂模式定义:工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式...

    23种设计模式第二篇:java工厂模式 定义: 工厂模式是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 工厂模式主要是为创建对象提供过渡接口, ...

最新文章

  1. android studio查看字节码,使用Android studio查看Kotlin的字节码教程
  2. docker的安全管理与TLS/LLS加密通信
  3. mysql设计技巧_MySQL库表设计小技巧
  4. 用SAP ALV Integrated Data Access展示CDS view数据的一些调试截图
  5. 晨风机器人突破限制_厉害了!工程建设领域首创!会自动测量、自动调平的测量机器人...
  6. django-模板的功能与配置
  7. 简单工厂和 工厂设计模式--抽象工厂模式--Java实现
  8. Socket Tools的使用
  9. python pip工具安装教程
  10. java开发小公司跳槽华为od笔试面试过程
  11. 为什么你在互联网上搞不到钱?
  12. 初探MUI制作微信APP页面(二)
  13. 珍惜能在公司上班的每一天——2022年个人工作总结
  14. 华为认证网络工程师认证考试笔试题
  15. 1028 人口普查(JAVA)
  16. 3 x 10的python表达式_python3.x 正则表达式的应用
  17. 上海亚商投顾早餐FM/0815多家央企拟从纽交所退市
  18. 信息系统项目管理师-项目成本管理
  19. 15款最好用的思维导图(心智图 )工具
  20. Spring MVC数据绑定 ----从入门到精通篇(三) POJO数据类型的绑定和自定义数据绑定

热门文章

  1. IDEA下springboot thymeleaf Cannot resolve ‘XXX‘
  2. vue 中 获取页面卷进去的宽度或高度
  3. 汽车冲压模具设计与成形工艺30个经验
  4. ubuntu18.04 安装qt5.12.8及环境配置
  5. 牛刀小试 - 详细总结Java-IO流的使用
  6. react withRouter和connect 同时使用的案例
  7. 【FreeRTOS(二)】任务优先级
  8. 【安卓】选项卡之底部选项卡(简易)
  9. 极兔抢滩IPO,李杰不止缺一个丰网
  10. 快慢指针判断链表中是否有环