设计模式之中介者模式
来源:互联网 发布:网络维护公司 编辑:程序博客网 时间:2024/05/20 00:13
描述:中介者模式在我们日常生活中出现的频率比较多,例如现在市场上出现的房产中介,买家或者卖家都可以自己独立去找房子或者卖房子,还可以通过中介的方式去买房或者卖房,通过中介的方式买家和卖家必须把自己信息注册到中介Mediator中,当买家需要通过中介的方式买房时,买家先找到自己注册的中介,然后通过中介找到合适的卖家。
UML类图如下:
测试代码如下:
1、中介抽象类
package com.java.mediator;public abstract class Mediator {protected ConcreteColleague1 colleague1;protected 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 abstract void doSomething1();public abstract void doSomething2();}
2、具体中介
package com.java.mediator;public class ConcreteMediator extends Mediator {@Overridepublic void doSomething1() {System.out.println("Colleague1 依赖别人做事情...");}@Overridepublic void doSomething2() {System.out.println("Colleague2依赖别人 做事情...");}}
package com.java.mediator;public abstract class Colleague {protected Mediator mediator;public Colleague(Mediator mediator) {this.mediator = mediator;}}
4、具体Colleague
package com.java.mediator;public abstract class Mediator {protected ConcreteColleague1 colleague1;protected 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 abstract void doSomething1();public abstract void doSomething2();}
package com.java.mediator;public class ConcreteColleague2 extends Colleague {public ConcreteColleague2(Mediator mediator) {super(mediator);}public void selfMethod(){System.out.println("ConcreteColleague2独立做事情...");}public void depMethod(){super.mediator.doSomething2();}}
5、测试类
package com.java.mediator;public class MediatorTest {public static void main(String[] args) {Mediator mediator = new ConcreteMediator();ConcreteColleague1 c1 = new ConcreteColleague1(mediator);ConcreteColleague2 c2 = new ConcreteColleague2(mediator);c1.selfMethod();c1.depMethod();c2.selfMethod();c2.depMethod();}}
6、测试结果
ConcreteColleague1独立做事情...Colleague1 依赖别人做事情...ConcreteColleague2独立做事情...Colleague2依赖别人 做事情...
0 0
- 设计模式之中介者
- 设计模式 之 中介者
- 设计模式之中介者
- 设计模式之Mediator中介者模式
- 设计模式之中介者模式
- 设计模式之中介者模式
- 八 设计模式之中介者模式
- 设计模式之--中介者模式
- 设计模式之中介者模式
- c++设计模式之中介者模式
- 设计模式之-中介者模式
- 设计模式之中介者模式
- c++设计模式之中介者模式
- 设计模式之中介者模式(Mediator)
- 设计模式之中介者模式
- 设计模式之中介者模式
- JAVA-设计模式之中介者模式
- 大话设计模式之中介者模式
- windows上自动设置java环境变量的脚本
- JavaScript中的offsetLeft以及obj.style.left
- dubbo通信协议之对比
- 关于文件输出空字符问题(C语言)
- 健身健美减脂、脱水、充碳记录
- 设计模式之中介者模式
- 记安卓中倒计时代码
- java Web 文件断点续传
- 你是如何看待5月12号爆发的在各高校电脑勒索比特币的病毒WannaCry?
- 信息安全工程师 学习笔记(二十二)
- FFMPEG--裸码流解析AVCodecParser
- java项目在Linux下目录错误问题
- 编程思想之多线程与多进程(4):C++ 中的多线程
- 剑指offer 12. 打印1到最大的n位数