tgoop.com/openit2/3327
Last Update:
📘Патерн програмування Observer 📘
Цей патерн використовується для створення від однієї до багатьох залежностей між об'єктами. Це означає, що коли один об'єкт змінює свій стан, усі залежні від нього об'єкти автоматично сповіщаються й оновлюються. 🕵️♂️
✏️Приклад на JavaScript
Уявімо, що в нас є клас Subject (Суб'єкт), який має список спостерігачів (observers) і методи для додавання, видалення й сповіщення спостерігачів 👇class Subject {
constructor() {
this.observers = [];
}
subscribe(observer) {
this.observers.push(observer);
}
unsubscribe(observer) {
this.observers = this.observers.filter(obs => obs !== observer);
}
notify(data) {
this.observers.forEach(observer => observer.update(data));
}
}
👀Тепер створімо клас Observer (спостерігач), який буде реагувати на зміни у Subject. class Observer {
constructor(name) {
this.name = name;
}
update(data) {
console.log(${this.name} отримав сповіщення з даними: ${data});
}
}
✏️Використання
Створімо суб'єкт і кілька спостерігачів, щоб побачити, як це працює 🎯
const subject = new Subject();
const observer1 = new Observer('Спостерігач 1');
const observer2 = new Observer('Спостерігач 2');
subject.subscribe(observer1);
subject.subscribe(observer2);
subject.notify('Нове повідомлення!');
subject.unsubscribe(observer1);
subject.notify('Ще одне повідомлення!');
✏️Результат у консолі буде таким 👇
Спостерігач 1 отримав сповіщення з даними: нове повідомлення!
Спостерігач 2 отримав сповіщення з даними: нове повідомлення!
Спостерігач 2 отримав сповіщення з даними: ще одне повідомлення!
Observer — потужний патерн, який може значно спростити обробку залежностей між об'єктами в коді. 🌟
#CodeBreakdown_for_students
👉 IT Student — будь в курсі IT-можливостей для тебе!
BY IT Student by Kharkiv IT Cluster
Share with your friend now:
tgoop.com/openit2/3327