设计模式:中介者与观察者模式解析
1. 中介者模式概述
在面向对象设计中,鼓励将行为分布在各个对象之间。但这会导致对象间的链接繁多,最坏情况下每个对象都要知晓并链接其他所有对象,这给维护和类的复用带来难题。为解决这些问题,可使用中介者对象,其他对象通过中心中介者对象以星型结构相连,中介者负责控制和协调对象组间的交互。
2. 使用中介者模式的场景
中介者模式适用于以下场景:
- 一组对象以明确但复杂的方式通信,产生的相互依赖关系无结构且难以理解。
- 由于对象引用和使用许多其他对象,导致其复用困难。
- 特定行为分布在多个类中,希望以最少的子类型化来定制该行为。
3. 中介者模式的组成部分
中介者模式的主要参与者如下:
| 参与者 | 描述 |
| ---- | ---- |
| Mediator trait | 抽象定义处理客户端同事回调函数调用的行为。 notify 方法可带或不带参数,这里显示为接受对 Scala 任意类型对象的引用。 |
| ConcreteMediator | 维护同事回调函数列表,并为 notify 方法提供具体实现。该方法决定回调的调用方式,可通过持有回调函数列表缓冲区,使用 foreach 函数将数据应用到每个回调。它可以是类或对象(若只需一个中介者,可使用对象)。 |
| Colleague trait | 标记特征,用于表明具体同事在设计模式中的角色,可选,因为该特征无抽象或具体成员,也不作为任何函数或方法的参数,也不用于指定任何集
中介者与观察者模式详解
超级会员免费看
订阅专栏 解锁全文
7

被折叠的 条评论
为什么被折叠?



