js设计模式:单例模式

作用:

保证一个类只有一个实例,并且提供一个全局的访问位置。

可以用来实现全局的一些状态管理或者独一无二的数据

示例:

javascript 复制代码
      class Wjt{
        constructor(name,idNumber,gender){
           this.name = name
           this.idNumber = idNumber
           this.gender = gender
        }
        //可以直接使用Wjt调用的静态方法
        static getInstance(name,idNumber,gender){
            if(!this.instance){
                this.instance = new Wjt(name,idNumber,gender)
            }
            return this.instance
        }
      }
        
        //王惊涛注册户籍
        const wjt1 = Wjt.getInstance('王惊涛','123456789','man')
        //再次注册户籍
        const wjt2 = Wjt.getInstance('新惊涛','987654321','man')
        console.log(wjt1,'wjt1')
        console.log(wjt2,'wjt2')
        console.log(wjt1 === wjt2)  //true 
        //第一次已经注册成功了,instance已经有了固定的值,wjt已经存在于这个世界上了,且是唯一不可变的,所以用单例模式
相关推荐
ZouZou老师1 分钟前
C++设计模式之工厂方法模式:以家具生产为例
c++·设计模式·工厂方法模式
蓝瑟12 小时前
告别重复造轮子!业务组件多场景复用实战指南
前端·javascript·设计模式
Arva .14 小时前
讲一下 Spring 中用到的设计模式
java·spring·设计模式
繁华似锦respect15 小时前
lambda表达式中的循环引用问题详解
java·开发语言·c++·单例模式·设计模式·哈希算法·散列表
星月IWJ19 小时前
领域驱动设计学习
java·学习·设计模式
_dindong19 小时前
Linux网络编程:Reactor反应堆模式
linux·服务器·网络·设计模式·php
雨中飘荡的记忆20 小时前
Step Builder模式实战
java·设计模式
Eren7Y琳20 小时前
开箱即用构建应用环境:openEuler易获得性深度验证
redis·设计模式·架构
Unstoppable2220 小时前
八股训练营第 39 天 | Bean 的作用域?Bean 的生命周期?Spring 循环依赖是怎么解决的?Spring 中用到了那些设计模式?
java·spring·设计模式
闲人编程21 小时前
微服务API网关设计模式
python·缓存·微服务·设计模式·系统安全·api·codecapsule