观察者模式的公会代码TypeScri
时间: 2024-04-14 09:22:59 浏览: 14
观察者模式是一种行为设计模式,它允许对象之间建立一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在TypeScript中,可以通过以下方式实现观察者模式的公共代码:
```typescript
// 定义观察者接口
interface Observer {
update(data: any): void;
}
// 定义主题接口
interface Subject {
attach(observer: Observer): void;
detach(observer: Observer): void;
notify(data: any): void;
}
// 实现观察者
class ConcreteObserver implements Observer {
update(data: any): void {
console.log("Received data:", data);
// 执行相应的操作
}
}
// 实现主题
class ConcreteSubject implements Subject {
private observers: Observer[] = [];
attach(observer: Observer): void {
this.observers.push(observer);
}
detach(observer: Observer): void {
const index = this.observers.indexOf(observer);
if (index !== -1) {
this.observers.splice(index, 1);
}
}
notify(data: any): void {
for (const observer of this.observers) {
observer.update(data);
}
}
}
// 使用示例
const subject = new ConcreteSubject();
const observer1 = new ConcreteObserver();
const observer2 = new ConcreteObserver();
subject.attach(observer1);
subject.attach(observer2);
subject.notify("Hello, observers!");
subject.detach(observer2);
subject.notify("Goodbye, observer2!");
```