在真实项目中,为了实现模块化开发或者团队协作开发,我们经常应用单例模式(一般业务逻辑部分的代码都是依托单例模式设计规划的)
单例模式的由来
long long ago~~ ,JS中都是值类型,没有引用数据类型
var name='李芙蓉'; var age=13; var sex='女神'; var name='张三'; var age=81; var sex='未知'; //=>如果后面编写的代码,创建的变量或者函数名和之前的一样,会把之前存储的值替换掉;真实项目中, 团队协作开发,如果是这样来处理,经常会导致相互代码的冲突:`全局变量污染` `全局变量冲突`
后来JS中诞生了对象数据类型,解决了上面出现的污染或者冲突问题
//=>把描述同一件事务的特征或者属性,进行归纳汇总(放在一起),以此来避免全局变量之前的冲突 var person1={ name:'李芙蓉', age:13, sex:'小仙女' }; var person2={ name:'李四', age:81, sex:'看着办' }; person1.age person2.name
我们把对象数据类型实现 把描述同一件事务的属性或者特征归纳汇总在一起,以此避免全局变量冲突问题 的方式和思想叫做:单例设计模式
//=>单例模式 //1、singleton不仅仅是对象名了,在单例模式中,singleton称之为 “命名空间(nameSpace)” var singleton={ xxx:xxx, ... }; var singleton={ nameSpace1:{ xxx:xxx, ... }, nameSpace2:{ xxx:xxx, ... } ... };
把描述同一件事务的属性或者方法存放在某一个命名空间下,多个命名空间中的属性和方法是互不干扰的