Учасники
- Subject (Publisher) — зберігає список спостерігачів, надає методи
subscribe / unsubscribe / notify - Observer (Subscriber) — реалізує метод
update(), який викликається суб'єктом
Де зустрічається
- DOM-події у браузері (
addEventListener) - Системи подій у фреймворках (EventEmitter в Node.js)
- Reactive Programming (RxJS Observable)
- Message bus всередині застосунку
Observer vs Pub/Sub
У Observer суб'єкт знає про своїх спостерігачів напряму. У Pub/Sub між ними є посередник (брокер): видавець і підписник не знають одне про одного.