中介者模式
来源:互联网 发布:mac系统远程桌面工具 编辑:程序博客网 时间:2024/04/28 21:12
定义
用一个中介对象来封装一系列的对象交互。中介者使的各个对象不需要显示地相互引用,从而时期耦合松散,而且可以独立的改变他们之间的交互。
结构与说明
Mediator : 中介者接口
ConcreteMediator : 具体的中介者对象
Colleague : 同事类的定义,通常定义为抽象类,实现对象的公共功能(比如,对中介者的持有)
实现
//常规的实现方式,省略日志记录/**抽象的同事类*/publc abstract class Colleague{ private Mediator mediator; public Colleague(Mediator _mediator){ this.mediator = _mediator; } public Mediator getMediator(){ return mediator; } ....//其他的一些操作}/**中间者接口*/public interface Mediator{ public void changed(Colleague colleague);}/**具体的同事*/public class ConcreteColleague extends Colleague{ public ConcreteColleague(Mediator mediator){ super(mediator); } public void someOperation(){ getMediator().changed(this); }}/**具体的中介者*/public class ConcreteMediator implements Mediator{ private ConcreteColleagueA A; private ConcreteColleagueB B; ......//A B的set方法 public void changed(Colleague colleague){ //A B之间的协调机制 }}
一些讨论:
- 根据业务规则,中介者的接口并不是一定需要的
- 根据业务实现,同事类并不一定有一致的父类接口
- 根据业务规则,可以将中介者定为单例模式,在同事类中直接调用
- 根据业务实现,可以不统一通知函数
- 根据业务实现,可以将同事和中介者使用通知者模式,中介者不必持有所有所有的同事类。
满足上述任意一个要求,都是广义中介者。
使用中介者模式的时候,千万别将中介类弄得过于膨胀,中介者是为了降低耦合,但是过度集中也是设计缺陷。
在学习MVC的时候,其中的C就是Controller,是Model和View的中介对象。
No Final is final
By Xu.j.h
0 0
- 深入浅出中介者模式
- 中介者(Mediator)模式
- Mediator中介者模式
- 中介者模式
- 中介者模式
- Mediator 中介者模式
- 中介者模式Mediator
- 侃中介者模式
- 中介者模式
- 中介者模式 MediatorPattern
- 中介者模式Mediator
- 中介者模式
- 中介者模式
- 中介者模式
- 中介者模式
- 中介者模式
- 中介者模式(python)
- Mediator模式(中介者)
- My linux install fedora 2
- tomcat发布遇到数据不显示问题
- XP的IIS连接数修改方法,突破默认最大连接数10
- 寒假刷oj——坐车问题
- spring配置文件中配置实体类与数据库字段同步,即正向生成表
- 中介者模式
- 练习3-发工资
- 关联性容器存放自定义类型
- 专访阿里云RDS团队:WebScaleSQL是一个怎么样的数据库?
- 使用OpenCV完成车道线检测功能
- codis和jedis性能比较
- 阮一峰:Make 命令教程
- 软件工程师能力自我评价表
- C++ Coding 指南