设计模式——中介者模式
来源:互联网 发布:linux退出命令行 编辑:程序博客网 时间:2024/05/17 02:36
中介者(Mediator)模式:用一个中介者来封装一系列的对象交互。中介者使各对象不需要显示的相互引用,从而使其耦合松散,而且可以独立改变它们之间的交互。
Mediator:中介者抽象接口,定义一个接口用于与各个Colleague对象通讯;
ConcreteMediator:具体中介者,存储并维护各个Colleague对象;
Colleague:同事类,每个同事类都知道它的中介者对象,不能与同事进行通讯,只能通过中介者进行通讯;
适用性:
(1)当一组对象以有规律的方式通讯,但相互依赖关系混乱时;
(2)当一个对象引用其他好多对象并且与这些对象通讯,导致难以复用该对象时;
(3)想定制一个发布在多个类中的行为,而又不想生成太多的子类时;
优点:
(1)将原本发布在多个对象进的行为集中在Mediator类中,减少了子类生成;
(2)将各个Colleague类解耦,可以独立的改变和复用各Colleague类和Mediator类;
(3)简化了对象协议;
(4)将Colleague对象的交互独立成一个类,有助于弄清系统对象是如何交互的;
缺点:
Mediator变得过于复杂,难以维护;
实现:
(1)当Colleague仅与一个Mediator工作时,没必要定义一个抽象Mediator类;
(2)Colleague与Mediator直接的通讯,一种方式是使用观察者模式,Medaitor实现为一个Observer,各个Colleague作为Subject;另一种方法是Mediator定义一个特殊的通知接口,各个Colleague通讯直接调用该接口。
0 0
- 设计模式——中介者模式
- 设计模式——中介者模式
- 设计模式——中介者模式
- 设计模式——中介者模式
- 设计模式——中介者模式
- 设计模式—Mediator中介者模式
- 大话设计模式—中介者模式
- Java设计模式—中介者模式
- 设计模式——中介者
- 设计模式学习—Mediator(中介者)
- 大话设计—中介者模式
- 设计模式——中介者设计模式
- 设计模式之——中介者设计模式
- 设计模式——中介模式
- 设计模式——中介模式
- 设计模式——中介模式
- 【设计模式】中介者
- 中介者设计模式
- 编写优良CSS代码总结
- gulp源码解析(二)—— vinyl-fs_2
- 基姆拉尔森计算公式 (计算一个日期是星期几)
- CSDN-markdown编辑器
- 【Matlab Computer Vision System ToolBox】学习笔记-3 -点云配准 | 噪音去除 | 降采样
- 设计模式——中介者模式
- MySQL性能的五大配置参数(内存参数)
- USACO P1457 城堡 The Castle
- UIAlertController 弹出延时
- ChucK初步(5)
- SPOJ TRNGL Make Triangle && CodeForces 550D Regular Bridge
- 你与高级工程师的距离还差多少?
- 同步、互斥 阻塞与非阻塞
- python解析 MS-Celeb-1M 数据库