介绍
中介者模式,它通过将对象之间的通信封装到一个中介者对象中,从而使对象之间的交互变得松散耦合。在中介者模式中,对象不再直接相互通信,而是通过中介者对象来进行通信。
主要步骤:
- 创建一个中介者对象,该对象负责协调其他对象之间的通信。
- 创建一些需要互相通信的对象,这些对象将成为中介者的成员。
- 在需要通信的对象中,将中介者对象作为参数传递给它们的方法或构造函数。
- 当一个对象想要与其他对象通信时,它将调用中介者对象的方法,通过中介者来进行通信。
js代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| const Mediator = { register(object) { this[object.name] = object; object.mediator = this; }, send(message,sender,receiver) { if (receiver) { receiver.receive(message,sender); } else { for (const key in this) { if (typeof this[key].receive === 'function') { this[key].receive(message,sender); } } } } }
const ObjectA = { name: 'ObjectA', receive(message,sender) { console.log(`${this.name} received ${message} from ${sender.name}`); } }
const ObjectB = { name: 'ObjectB', receive(message,sender) { console.log(`${this.name} received ${message} from ${sender.name}`); } }
const ObjectC = { name: 'ObjectC', receive(message,sender) { console.log(`${this.name} received ${message} from ${sender.name}`); } }
Mediator.register(ObjectA); Mediator.register(ObjectB); Mediator.register(ObjectC);
Mediator.send('Hello',ObjectA);
|