观察者模式

111 阅读1分钟

vue 特点数据变化 更新视图,监控数据变化,数据变化后徐亚更新视图。

class Subject {
    constructor() {
        this.evtArr = []
        this.state = '50%'
    }
    attach(o) {
        this.evtArr.push(o)
    }
    setState(newState){
        this.state = newState;
        this.evtArr.forEach((item)=> item.updata(newState))
    }
}

class Observer {
    constructor(name){
        this.name = name;
    }
    updata(state){
        console.log(`${this.name}说: 工作完成了${state}`)
    }
}

let manager = new Observer('经理')
let design = new Observer('设计')

let developer = new Subject()

developer.attach(manager)
developer.attach(design)

developer.setState('70%');
developer.setState('90%');