1.单例设计模式(Singleton Pattern)
1.为什么会出现单例模式呢
在同一作用域下会出现相同的姓名时,就需使用这个单例模式。
单例模式一般都会结合闭包一起来使用的
let name='张三';
let age=20;
let sex= '男';
let name='李四';
let age=21;
let sex= '男';
2.单例模式是干嘛的
把描述当前事务的信息进行分组归类(减少全局变量的污染)
let obj={
name:"张三";
age:20
}
let ary={
name:"李四";
age:21
}
这就是JS中的单例模式;
代码中的obj / ary 不仅仅被叫做变量(对象名),也被称为“命名空间”
单例模式:把描述事物的信息放到一个命名空间中进行归组,防止全局变量的污染。
3.为了让单例模式变得高大上一些,真实项目中的单例模式都是这样处理
let namespace=(function(){
//在这里面创建一些方法(闭包中的私有方法)
let fn = function(){
//....
}
return {
//把return出来的东西赋值给namespace
name:"xxx";
fn:fn
}
})();
namespace.name
namespace.fn()
上面这个就是高级单例模式
2.工厂模式
1.批量化生产:把实现某个功能的代码进行封装,后期在想实现这个功能,我们直接执行函数即可。
- 低耦合:减少页面中冗余的代码
- 高内聚:提高代码的重复使用率
function createPerson(name,age){
let person={};
person.name=name;
person.age=age;
return person
}
let obj=createPerson('张三',18);
let arr=createPerson('李四',10);
obj.name
arr.name