前言

在之前我前几年的学生生涯中,我真的不太理解设计模式到底是干什么,他针对那些方面。现在也不是很明白,就比如下面的单例模式,虽然我理解他的概念,但是真正需要使用的时候,我也不一定写的出来。我过随着成长,我慢慢的理解了,他们的出现并能生存的意义。


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是单例模式

单例模式的特性

  • 1、类只有一个实例。(唯一)
  • 2、全局可以访问该实例。(可全局访问)
    ,满足上述两点条件就是一个单例模式。

那么有人问,全局对象是不是一个单例模式?(全局变量:全局可以访问,只有一个)。他不是一个正规单例,不可争议他确实满足单例模式的特点


二、如何使用

    class Singleton {
   
    constructor(name) {
   
        this.name = name;
        this.instance = null;
    }
    static getInstance(name) {
   
        console.log(this.instance)
        if(!this.instance) {
   
            this.instance = new Singleton(name);
        }
        return this.instance;
    }
}

var oB = Singleton.getInstance('sddawd');
var oA = Singleton.getInstance('hidawd');

console.log(oA,oB)
//Singleton {name: "sddawd", instance: null}
//Singleton {name: "sddawd", instance: null}

如上述代码我们可以看到,当有了第一次实例之后,不管我们创建多少个他都只能放回第一次创建的对象。

三、使用场景

  • 使用JavaScript写一个弹出框,每次点击弹出按钮只弹出第一次生成的那个弹出框。

想了这么久,也不知道其他的应用场景在哪里。这里大家需要大家自己思考和总结。

总结

单例模式顾名思义,单就是单一,例就是实例。连在一起就是,单一的实例。好的单例模式他的控制与初始化代码是分别管控的。