观察者模式(发布订阅模式)
简介:
观察者模式(又被称为发布-订阅(public/Subscribe))模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象再状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。
代码块:
<button id="public">发布动态</button>
<script>
// 观察者 粉丝
class Fan{
constructor(name){
this.name = name;
}
//接收动态
update(){
console.log(`${this.name}接收到变化`)
}
}
class Star{
constructor(){
this.fans = [];
}
//添加粉丝
add(fan){
this.fans.push(fan);
}
//通知粉丝
public(){
// [1,2,3].forEach(item =>{})
this.fans.forEach(fan => {
fan.update();
})
}
}
let star = new Star();
let f1 = new Fan('小红');
let f2 = new Fan('小蓝');
let f3 = new Fan('小绿');
let f4 = new Fan('小灰');
star.add(f1);
star.add(f2);
star.add(f3);
star.add(f4);
let public = document.querySelector('#public');
public.addEventListener('click',() => {
star.public();
})
</script>