初学简单理解:有一个主类和很多的观察者类。当主类有所变化的时候,能够通知到其他的观察者类。代码中,将所有的观察者打包为一个泛型数组,放入到主类中,一旦主类变化则在set函数中调用观察者类中的提前写好的方法,这样就进行了穿插。
class Person{
private _name:string=""
//建立起所有观察者
observers:Array<IObserver>=new Array<IObserver>()
set name(value:string){
this._name=value
this.observers.forEach(element => {
element.nameChange(value)
})
}
get name(){
return this._name
}
}
interface IObserver{
nameChange(nameValue:string):void
}
class test implements IObserver{
nameChange(nameValue:string){
console.log("数值已经变化"+nameValue);
}
}
let t=new test()
let p=new Person()
p.observers.push(t)
p.name="hello"