中介者模式——对象行为型模式
来源:互联网 发布:加工中心钻孔手动编程 编辑:程序博客网 时间:2024/05/18 01:41
一、意图
用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显示地互相引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。
二、适用性
在下列情况下使用中介者模式:
- 一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。
- 一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象。
- 想定制一个分布在多个类中的行为,而又不想生成太多的子类。
三、结构
四、代码
public abstract class Mediator { public abstract void method();}
public class ConcreteMediator extends Mediator { protected ConcreteColleagueA colleagueA;//具体同事A protected ConcreteColleagueB colleagueB;//具体同事B @Override public void method() { colleagueA.action(); colleagueB.action(); } public void setColleagueA(ConcreteColleagueA colleagueA) { this.colleagueA = colleagueA; } public void setColleagueB(ConcreteColleagueB colleagueB) { this.colleagueB = colleagueB; }}
public abstract class Colleague { protected Mediator mediator ;//中介者对象 public Colleague(Mediator mediator){ this.mediator = mediator; } /** * 同事角色的具体行为,由子类去实现 */ public abstract void action();}
public class ConcreteColleagueA extends Colleague { public ConcreteColleagueA(Mediator mediator) { super(mediator); } @Override public void action() { System.out.println("ColleagueA 将信息递交给中介者处理"); }}
public class ConcreteColleagueB extends Colleague { public ConcreteColleagueB(Mediator mediator) { super(mediator); } @Override public void action() { System.out.println("ColleagueB 将信息递交给中介者处理"); }}
0 0
- 中介者模式——对象行为型模式
- 中介者——对象行为模式
- MEDIATOR(中介者)——对象行为型模式
- 对象行为模式——中介者模式(Mediator)
- 中介者模式-对象行为模式
- 行为型模式之四——中介者模式
- java设计模式--中介者模式(对象行为型)
- 中介者模式(Mediator)(对象行为型模式)
- Mediator 中介者模式 --对象行为型模式
- 中介者模式(行为型)
- 中介者(Mediator)----对象行为型模式
- 3.5 Mediator(中介者) -- 对象行为型模式
- 设计模式--行为型--中介者模式
- 行为型模式之中介者模式
- 行为型模式1:中介者模式
- 行为型模式-Mediator ( 中介者模式 )
- 行为型模式-中介者模式
- 行为型设计模式-中介者模式
- spring注解
- java中String的相等比较
- JAVA中的关键字
- java中map插入相同的key
- CSS布局 ——从display,position, float属性谈起
- 中介者模式——对象行为型模式
- web项目中,视图层中关于相对路径和绝对路径
- Python Web 开发学习 - 学习笔记(4)- Python的编码规则
- eclipse中断点调试debug
- 使用junit测试用例
- Codeforces 605A Sorting Railway Cars [贪心]
- Mybatis学习错误之:重复加载mapper.xml
- mybatis错误之配置文件属性配置问题
- 关于直接打开ICE demo的exe文件的错误提示“无法启动此程序,因为计算机中丢失MSVCP100D.dll.”