观察者模式: 观察者模式是定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
interface IObserver {
changeName(name: string): void;
}
class Preson {
private _name: string;
observer: Array<IObserver> = new Array<IObserver>();
set <T extends string>(value: T): void {
this._name = value;
for (let obs of this.observer) {
obs.changeName(this._name);
}
}
get <T extends string>(value: T): T {
return value
}
}
class Test implements IObserver{
changeName(name: string): void {
console.log('名字变成了' + name);
}
}
const P = new Preson()
const T = new Test()
P.observer.push(T);
P.set('Billy');
P.set('Robby');
P.set('Tony');