比如有很多个对象,对象之间又频繁地相互访问,
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(num, m);
}
}
}
//中介者
class Mediator {
constructor(a, b) {
this.a = a;
this.b = b;
}
setB() {
let number = this.a.number * 66;
this.b.setNumber(number); //此时没有传m
}
setA() {
let number = this.b.number * 88;
this.a.setNumber(number); //此时没有传m
}
}
let a = new A();
let b = new B();
let m = new Mediator(a, b);
a.setNumber(100, m);
console.log(a.number, b.number);
// 100 6600
b.setNumber(100, m);
console.log(a.number, b.number);
// 8800 100
以上 A 和 B之间都不能相互访问,只能通过中介者来访问。