中介者模式 将众多“同事类”解耦,加入一个经理类,进行调节他们的沟通
经理
register是将加入部门的方法,command是发送命令的方法
public interface Mediator {
void register(String dname,Department d);
void command(String dname);
}
将所有部门放入容器当中,让每一个部门可以发送信息给其他的部门
class President implements Mediator{
private HashMap<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();
}
}
部门接口
两件事,一个是自己本职工作,另一个是与总经理打交道
public interface Department {
void selfAction();
void outAction();
}
以研发部为例,每个部门都有经理属性,能够调用register方法,将本部门放进去,还可以借总经理的手调用其他部门
class Development implements Department{
private Mediator m;
Development(Mediator m) {
this.m = m;
m.register("development",this);
}
@Override
public void selfAction() {
System.out.println("专心研发");
}
@Override
public void outAction() {
System.out.println("需要资金支持");
m.command("financial");
}
}