代码实现
public interface Mediator { void register(String dname,Department d); void command(String dname); }
/* * 同事类接口 */ public interface Department { void selfAction(); //做本部门工作 void outAction(); //向总经理发出申请 }
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("汇报工作,需要资金支持"); } } 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("汇报工作,钱怎么分配"); } } 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"); } }
public class President implements Mediator{ private Map<String,Department> map = new HashMap<String,Department>(); @Override public void register(String dname, Department d) { map.put(dname,d); } @Override public void command(String dname) { map.get(dname).selfAction(); } }
public class Client { public static void main(String[] args) { Mediator m = new President(); Market market = new Market(m); Development devp = new Development(m); Finacial f = new Finacial(m); market.selfAction(); market.outAction(); } }