前言
在之前我前几年的学生生涯中,我真的不太理解设计模式到底是干什么,他针对那些方面。现在也不是很明白,就比如下面的单例模式,虽然我理解他的概念,但是真正需要使用的时候,我也不一定写的出来。我过随着成长,我慢慢的理解了,他们的出现并能生存的意义。
提示:以下是本篇文章正文内容,下面案例可供参考
一、什么是单例模式
单例模式的特性
- 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写一个弹出框,每次点击弹出按钮只弹出第一次生成的那个弹出框。
想了这么久,也不知道其他的应用场景在哪里。这里大家需要大家自己思考和总结。
总结
单例模式顾名思义,单就是单一,例就是实例。连在一起就是,单一的实例。好的单例模式他的控制与初始化代码是分别管控的。