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);