//店家 /*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)//我想要汉堡包哈哈哈 */
核心例如你在星巴克点了咖啡,此时你并不需要在吧台坐等,你只需要回到位子上玩手机,等咖啡好了服务员会叫你。不光叫你,其他人的咖啡好了,服务员也会叫他们来取。
反正就是核心就是你一对多的关系,比如就是一个商家对应很多的客人哈
记住,核心知识点,一对多是店家对顾客,我是店家我观察着你是否要购买我的物品,观察者:店家,被观察者:顾客,