js设计模式——8.中介者模式

js设计模式——8.中介者模式

/*js设计模式——中介者模式*/

class A {
    constructor() {
        this.number = 0;
    }

    setNumber(num, m) {
        this.number = num;
        if (m) {
            m.setB();
        }
    }
}

class B {
    constructor() {
        this.number = 0;
    }

    setNumber(num, m) {
        this.number = num;
        if (m) {
            m.setA();
        }
    }
}

// 中介者
class MediatorDome {
    constructor(a, b) {
        this.a = a;
        this.b = b;
    }

    setB() {
        let number = this.a.number;
        this.b.setNumber(number * 100);
    }

    setA() {
        let number = this.b.number;
        this.b.setNumber(number / 100);
    }
}

// 测试
let a = new A();
let b = new B();
let m = new MediatorDome(a, b);
a.setNumber(100, m);
console.log(a.number, b.number);
a.setNumber(100, m);
console.log(a.number, b.number);

 

原文地址:https://www.cnblogs.com/hpx2020/p/10731112.html