efsefesf
by trisna dev
JavaScript
class Subject {
private observers: Observer[] = [];
public attach(observer: Observer): void {
this.observers.push(observer);
}
public notify(): void {
for (const observer of this.observers) {
observer.update();
}
}
}
interface Observer {
update(): void;
}
class ConcreteObserver implements Observer {
update(): void {
console.log('Observer notified!');
}
}
// Penggunaan
const subject = new Subject();
const observer1 = new ConcreteObserver();
const observer2 = new ConcreteObserver();
subject.attach(observer1);
subject.attach(observer2);
subject.notify(); // Output: Observer notified! (2x)