概念
- 多个对象之间频繁互相访问
-
生活中可以以买房中介来理解中介者模式概念
中介者模式 -概念图.png
代码演示
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 Mediator {
constructor(a, b) {
this.a = a;
this.b = b;
}
setA() {
let number = this.a.number;
this.b.setNumber(number * 100);
}
setB() {
let number = this.b.number;
this.a.setNumber(number / 100);
}
}
// 测试
let a = new A();
let b = new B();
let m = new Mediator(a, b);
a.setNumber(100, m);
console.log(a.number, b.number);
b.setNumber(100, m);
console.log(a.number, b.number);
