中介者模式 Mediator Pattern
介绍
- 解除对象与对象之间紧耦合的关系
- 所有对象都通过中介者对象来通信,而不是相互引用
示例
olu 要去租房了,找的中介,中介对应很多买家和卖家。比如 房主a 修改了价格,通知中介告诉 租客b。
class Mediator { constructor(a, b) { this.a = a this.b = b }
setA() { const number = this.b.number this.a.setNumber(number * 1) }
setB() { const number = this.a.number this.b.setNumber(number * 1.1) }}
class A { constructor() { this.number = 0 }
setNumber(num, m) { this.number = parseInt(num, 10) if (m) { m.setB() } }}
class B { constructor() { this.number = 0 }
setNumber(num, m) { this.number = parseInt(num, 10) if (m) { m.setA() } }}
const a = new A()const b = new B()const 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)设计原则验证
- 各个关联对象通过中介者隔离
- 符合开放封闭原则