观察者模式?
是一种一对多的关系,当一个对象发生改变时,其他依赖者都会收到对应的通知并及时更新;
就比如说:现场拍卖,台上的是观察者,当商品价格发生改变时就会更新通知所有的竞拍者,其中一件商品对应了多个竞拍者,体现了一对多的关系;
可以参考如下图片:

简单案例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| class Observer { constructor(name) { this.name = name; }
update(price) { console.log(`${this.name} 您收到的价格为: $${price}`); } }
class Subject { constructor() { this.observers = []; this.price = 0; }
addObserver(observer) { this.observers.push(observer); }
removeObserver(observer) { this.observers = this.observers.filter(item => item !== observer); }
updatePrice(price) { this.price = price; this.observers.forEach(item => item.update(price)); } }
const subject = new Subject();
const ob1 = new Observer("竞拍者A"); const ob2 = new Observer("竞拍者B"); const ob3 = new Observer("竞拍者C");
subject.addObserver(ob1); subject.addObserver(ob2); subject.addObserver(ob3);
subject.updatePrice(100);
subject.removeObserver(ob1);
subject.updatePrice(200);
|