设想形式——观察者形式

视察者形式

望文生义,有视察者 被视察者, 这两是有关联的

被视察者状况转变时,触发视察者的 行动

// 被视察者
function Observer(){
    this.state = '默许状况';
    this.arr = [];// 用来存储一切的视察者
}
// 晓得谁在 视察本身
Observer.prototype.attch = function(s){
    // 存储主动视察者
    this.arr.push(s);
}
// 被视察者状况
Observer.prototype.setState = function(newState){
    this.state = newState;
    // 只需状况转变就关照一切的视察者,孩子饿了就会朝着爸妈哭
    this.arr.forEach(s=>s.update(newState))
}

// 定义视察者
/**
* name: 视察者
* target: 被视察者
**/ 
function Subject(name,target){
    this.name = name;
    this.target = target;
}
// 获得状况后的回响反映
Subject.prototype.update = function(newState){
    console.log(this.name + '视察到状况' + newState);
}

let o = new Observer();
let s1 = new Subject('父亲',o);
let s2 = new Subject('母亲',o);
o.attch(s1);
o.attch(s2);
o.setState('饿了');
    原文作者:dinglittle
    原文地址: https://segmentfault.com/a/1190000018360610
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞