学习笔记——JAVA设计模式<14>中介者模式
来源:互联网 发布:淘宝模板软件破解版 编辑:程序博客网 时间:2024/06/05 23:03
中介者模式Mediator
- 中介者模式核心
- 如果一个系统中对戏那个之间的联系呈现为网状结构,对象之间存在大量的多对多关系,将导致关系及其复杂,这些对象称为“同事对象”
- 我们可以引入一个中介对象,使各个同事对象只跟中介者对象打交道,将复杂的网状结构变为星状结构
中介者模式的本质
解耦多个同事对象之间的交互关系每个对象都持有中介者对象的引用,只跟中介者对象打交道。我们通过中介者对象统一管理这些交互关系
模拟公司各部
package studyGFO;public interface Mediator { void register(String dname,Department d); void command(String dname);}
package studyGFO;import java.util.HashMap;import java.util.Map;public class President implements Mediator{ private Map<String, Department> map = new HashMap<>(); @Override public void register(String dname, Department d) { map.put(dname, d); } @Override public void command(String dname) { map.get(dname).selfAction(); }}
package studyGFO;/** * 同事类 * @author http://blog.csdn.net/thewaiting * */public interface Department { void selfAction();//做本部门的事 void outAction();//向总经理发出申请}
package studyGFO;/** * 开发部 * @author http://blog.csdn.net/thewaiting * */public class Development implements Department{ private Mediator m;//持有中介者(总经理)的引用 public Development(Mediator m) { super(); this.m = m; m.register("development", this); } @Override public void selfAction() { System.out.println("开发项目"); } @Override public void outAction() { System.out.println("汇报工作"); }}
package studyGFO;/** * 财务部 * @author http://blog.csdn.net/thewaiting * */public class Finacial implements Department{ private Mediator m;//持有中介者(总经理)的引用 public Finacial(Mediator m) { super(); this.m = m; m.register("finacial", this); } @Override public void selfAction() { System.out.println("发钱"); } @Override public void outAction() { System.out.println("汇报数钱"); }}
package studyGFO;/** * 市场部 * @author http://blog.csdn.net/thewaiting * */public class Market implements Department{ private Mediator m;//持有中介者(总经理)的引用 public Market(Mediator m) { super(); this.m = m; m.register("market", this); } @Override public void selfAction() { System.out.println("买东西"); } @Override public void outAction() { System.out.println("汇报买东西"); //通过中介调用了需要的方法 //财务部给市场部发钱 m.command("finacial"); }}
package studyGFO;public class Client { public static void main(String[] args) { Mediator m = new President(); Market market = new Market(m); Development development = new Development(m); Finacial finacial = new Finacial(m); market.selfAction(); market.outAction(); }}运行结果买东西汇报买东西数钱
开发中场景
MVC模式(其中C,控制器就是一个中介者对象。M和V都和他打交道)
窗口游戏程序,窗口软件开发中窗口对象也是一个中介者对象
图形界面开发GUI中,多个组件之间的交互,可以通过引用一个中介者对象来解决,可以是整体对象或者DOM对象
Java.lang.reflect.Method#invoke()
阅读全文
0 0
- 学习笔记——JAVA设计模式<14>中介者模式
- 设计模式学习笔记——中介者模式
- 设计模式学习笔记——中介者模式
- 设计模式学习笔记——中介者模式
- 设计模式学习笔记——Mediator中介者模式
- 设计模式学习笔记——中介者(Mediator)模式
- 设计模式学习笔记(十八)—Mediator中介者模式
- Java设计模式—中介者模式
- 设计模式学习笔记--中介者模式
- 设计模式学习笔记--中介者模式
- 《GOF设计模式》学习笔记—Mediator中介者
- Java设计模式14——中介者(Mediator)模式
- Java设计模式14——中介者(Mediator)模式
- 设计模式学习—Mediator(中介者)
- 学习设计模式之禅——中介者模式
- 设计模式学习—中介者模式(Mediator Design Pattern)
- 二十一、中介者模式——设计模式学习笔记
- java设计模式——中介者模式
- delphi日志模块代码
- STM32常见问题整理
- java jdk配置
- 66_常用类_DateFormat和SimpleDateFormat_时间和字符串的互相转换
- iOS在image上画文字-画图片
- 学习笔记——JAVA设计模式<14>中介者模式
- The Search API
- 升级 phpStudy 中 MySQL 版本至 5.7.17
- [bzoj2763]2763: [JLOI2011]飞行路线 分层图最短路
- SVN 错误:Unable to create pristine install stream
- 5-18 银行业务队列简单模拟 (25分)
- Linux之死锁产生条件&解决方法
- 十七、IDEA 常用快捷键整理
- Apache Zeppelin配置