🌰
假如你有一个非常爱你的男朋友,当你不开心时表现的很沮丧,这时他就会发现你不开心,然后做一系列的补救措施。当然你闺蜜也可以。
所以我们先得有两个对象:观察者(你男朋友)和被观察者(你),然后需要把观察者存起来(把关心你的人放心里),当状态发生变化时通知到观察者(你不开心时告诉他们),观察者根据被观察者的状态变化做相应的操作(关心你的人根据你的反应来做事情)。
//被观察者:你
class Subject {
constructor() {
this.status = '很开心~'
this.arr = []
}
attach(o) { // 你得把关心你的人放心里 (把观察者存起来)
this.arr.push(o)
}
setStatus(newStatus) {
this.status = newStatus
this.arr.forEach(o => o.update(newStatus))
}
}
// 观察者:你男朋友和你闺蜜
class Observer {
constructor(name) {
this.name = name
}
update(status) {
console.log(this.name + ':要买礼物:💄');
}
}
let o1 = new Observer("男朋友")
let o2 = new Observer("闺蜜小明")
let sub = new Subject()
sub.attach(o1) //你得把你男朋友放心里
sub.attach(o2)
sub.setStatus('我不开心了~')
这个时候你男朋友和你闺蜜就知道怎么做了:
男朋友: 要买礼物:💄
闺蜜小明: 要买礼物:💄// 输出
观察者和被观察者之间是直接关联的
网友评论