什么是设计模式?
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
一、单例模式
单例模式是什么?
单:单一
例子:实例
单例模式:一个构造函数只能有一个实例,不管你new多少次都是这一个
我们先简单的写一个函数
function Person(){
this.name = 'jack'
}
let p1 = new Person()
let p2 = new Person()
console.log(p1 === p2); //false
显然到这一步,我们的p1 和 p2 是Perosn函数的俩个不同的实例(事实上按照规则也确实如此),那么现在我们就需要加入一段新的代码,让他变成我们期望中的样子
let instance = null
function singleTon(){
if(!instance) instance = new Person()
return instance
}
这段代码的意思是先设置一个全局变量instance,接着我们写一个函数singleTon,在函数内部我们进行if判断,判断当instance存在的时候,instance通过new调用构造函数Person,然后再返回instance。这段代码的作用在于当我们从第二次开始调用singleTon这个函数时,我们的instance会赋值给Person函数的实例,也就是说不管调用多少次我们的实例始终只有一个
最终我们的代码变成了这样
function Person(){ this.name = 'jack' } let instance = null function singleTon(){ if(!instance) console.log(instance); instance = new Person() console.log(instance); return instance } let p1 = new singleTon() let p2 = new singleTon() console.log(p1 === p2); //true
结果我们可以看到p1完全等于p2了,就达到了我们单例模式的目的