观察者模式7(javascript版)兄弟们,好了,重新写好了
//店家
/*class Subject {//店家,,
constructor() {
this.state = 0//店家还没有收到订单
this.observers = []所以为空数组
}
attach(observer) {//收到订单,放进数组里,
this.observers.push(observer)
this.notifyAllObservers()
}
notifyAllObservers() {//做好了,接下来是告诉顾客
this.observers.forEach(observer => {
observer.update()
})
}
}
//顾客
class Observer {//我,当然是我看到你开门才买东西的是,所以观察者是,你开门我才能买东西的是吧
constructor(name, subject) {//这里是
this.name = name//我给钱给店家了
this.subject = subject//叫某一个商家
this.subject.attach(this)//店家说好嘛是开始做
}
update() {
console.log(`${this.name} update`)
}//店家给顾客东西,知道了,顾客知道了
}
// 测试代码
let s = new Subject()//店家
let o1 = new Observer('热狗', s)//我想要叫店家要热狗
let o2 = new Observer('汉堡', s)//我想要汉堡包哈哈哈
*/
核心例如你在星巴克点了咖啡,此时你并不需要在吧台坐等,你只需要回到位子上玩手机,等咖啡好了服务员会叫你。不光叫你,其他人的咖啡好了,服务员也会叫他们来取。
反正就是核心就是你一对多的关系,比如就是一个商家对应很多的客人哈
记住,核心知识点,一对多是店家对顾客,我是店家我观察着你是否要购买我的物品,观察者:店家,被观察者:顾客,