1.策略模式
在问题发生之前,想好应对的方案。
坦克的例子
2.代理模式
房东租房的例子
网页加载的进度条
代理 安全性
3.单例模式
就只有一个对象存在
实例:
const single =(function(){
let status; //用它来存储状态
let num =0;
function init(){
return{
sayHello:function(){
console.log("hello,world");
},
sayGoodBye:function(){
console.log("再见");
},
setNum:function(){
return num++;
},
getNum:function(){
return num;
}
}
}
return{
getStatus:function(){
if(!status){
status =init();
}
return status;
}
}
})();
// console.log(single);
// console.log(single.getStatus());
let info=single.getStatus();
console.log(info.setNum());
console.log(info.setNum());
console.log(info.setNum());
console.log(info.setNum());
let info2=single.getStatus();
console.log("------------"+info2.getNum());
info2.setNum();
console.log("=========="+info2.getNum())
4.观察者模式
发布 & 订阅
一对多、一对一 都是存在发布和订阅的关系
5.工厂模式
就是将一些操作进行实例化封装