在真实项目中,为了实现模块开发或者团队协作开发,我们经常应用单例模式,--一般业务逻辑部分的代码都是依托单例模式设计规划的。
(单例模的由来)
》long long ago `~~~~js中都是值类型,没有引用数据类型。
var age = 12;
var age = 26;
复制代码
>>如果后编写的代码,创建的变理或是函数名和之前的一样,会把之前的替换,代码冲突。-- 全局变量污染,
全局变量冲突。把描述同一件事的特征进行归纳,放在一起,看下面的就是单例模式,就是对象复制代码
var person1={
age : "12"
}
var person2= {
age : "26"
}
//调用:
person1.age
person2.age
>>这样就不冲突了。
复制代码
上面这种就是单例 --》我们把对象数据类型实现-》把描述同一件事件的属性或者特征归纳汇总在一起,以此避免全局变量冲突问题,的方式和思想叫做******单例模式*******。
singleton 不仅仅是对象名了,在单例模式中,singleton称为“命名空间->nameSpace把描述同一件事务的属性或者方法存入在某一个命名空间下,多个命名中的属性和方法是互不干扰的。
var singleton = {
nameSpace1:{
xxx:xxx,
...
},
nameSpace2:{
xxx:xxx,
....
}
}复制代码
使用单例模式实现模快开发
》模块化开发
把团队协作开发的是时候,我们常会把一个复杂而面,按照具体的功能划分成为不同的模块。
//张三: 搜索模块
var searchModel = {
sumbmit:function(){}
....
}
//李四: 天气模块
var weatherModel ={
setWeather:function(){},
....
}
//王兰:
var showModel = {
show:function(){}
//调用李四的方法
weaterModel.setWeater();
this.show();
}
运行王兰的方法:
showMode.show();
//复制代码
公共模块
var utils = {
show:function(){}
}复制代码