大话设计模式-中介者模式
来源:互联网 发布:淘宝手机店铺招牌尺寸 编辑:程序博客网 时间:2024/05/22 12:19
需求
实现一个模拟中介介绍两个人认识的程序。
实现
实现一个模拟中介介绍两个人认识的程序。
实现
public abstract class Mediator{abstract public void Send(String message,Colleague colleague);}
public class Colleague {protected Mediator mediator;public Colleague(Mediator mediator){this.mediator=mediator;}}
public class ConcreteMediator extends Mediator{private ConcreteColleague1 colleague1;private ConcreteColleague2 colleague2;public ConcreteColleague1 getColleague1() {return colleague1;}public void setColleague1(ConcreteColleague1 colleague1) {this.colleague1=colleague1;}public ConcreteColleague2 getColleague2(){return colleague2;}public void setColleague2(ConcreteColleague2 colleague2){this.colleague2=colleague2;}public void Send(String message,Colleague colleague){if(colleague==colleague1) colleague2.Notify(message);if(colleague==colleague2) colleague1.Notify(message);}}
public class ConcreteColleague1 extends Colleague{public ConcreteColleague1(Mediator mediator){super(mediator);}public void Send(String message){mediator.Send(message,this);}public void Notify(String message){System.out.println("colleague1 get message:"+message);}}
public class ConcreteColleague2 extends Colleague{public ConcreteColleague2(Mediator mediator){super(mediator);}public void Send(String message){mediator.Send(message,this);}public void Notify(String message){System.out.println("colleague2 get message:"+message);}}
public class Main{ public static void main(String[] args) { ConcreteMediator m=new ConcreteMediator(); ConcreteColleague1 c1=new ConcreteColleague1(m); ConcreteColleague2 c2=new ConcreteColleague2(m); m.setColleague1(c1); m.setColleague2(c2); c1.Send("Hello!"); c2.Send("Hello,too!"); } }中介者模式,定义一个中介对象来封装系列对象之间的交互。中介者使各个对象不需要显示地相互引用,从而使其耦合性松散,而且可以独立地改变他们之间的交互。一组定义良好的对象,现在要进行复杂的通信时或者定制一个分布在多个类中的行为,而又不想生成太多的子类时可以考虑使用中介者模式。可以看出,中介对象主要是用来封装行为的,行为的参与者就是那些对象,但是通过中介者,这些对象不用相互知道。使用中介者模式降低了系统对象之间的耦合性,使得对象易于独立的被复用;提高系统的灵活性,使得系统易于扩展和维护。同时,中介者模式的缺点也是显而易见的,因为这个中介承担了较多的责任,所以一旦出现问题,整个系统就会受到重大的影响。
0 0
- 大话设计模式-中介者模式
- 大话设计模式_中介者模式
- 大话设计模式 中介者模式
- 大话设计模式之中介者模式
- 大话设计模式—中介者模式
- 大话设计模式-中介者模式
- 大话设计模式25----中介者模式
- 大话设计模式之中介者模式
- 大话设计—中介者模式
- 大话设计模式-----(十)职责链模式、中介者模式
- 大话设计模式二十五:中介者模式(mediator)
- 大话设计模式--中介者模式 Mediator --C++实现实例
- 大话设计模式读书笔记之中介者模式
- 《大话设计模式》java实现之中介者模式
- 《大话》之 中介者模式
- 【设计模式】中介者
- 中介者设计模式
- 设计模式-中介者
- 集合排序
- SparkR初体验
- Mac+QT中使用mysql的一些问题
- PHP中的数据传输CURL
- 汇编
- 大话设计模式-中介者模式
- 旋转.shader
- Android Studio ndk-Jni开发详细入门,Aes加密demo
- Android 网络编程--上传文件及相应的参数到服务器
- 实用知识:距离传感器方法使用
- MIC编程(4)——MIC灵活高效的编程方式
- C++源程序到可执行文件的过程
- Ubuntu14.04下MySQL的安装与卸载
- java io 流 设计模式