package mediator;
public interface Mediator {
void register(String dname,Department d);
void conmand(String dname);
}
package mediator;
//同事类的接口
public interface Department {
void selfAction();//做本部门的事情
void outAction();//向总经理发出申请
}
package mediator;
public class Market implements Department{
private Mediator m;//持有中介者的引用
public Market(Mediator m) {
super();
this.m = m;
m.register("market", this);
}
@Override
public void selfAction() {
// TODO Auto-generated method stub
System.out.println("跑去接项目");
}
@Override
public void outAction() {
// TODO Auto-generated method stub
System.out.println("项目承接的进度,需要资金支持");
m.conmand("finance");
}
}
package mediator;
public class Development implements Department{
private Mediator m;//持有中介者的引用
public Development(Mediator m) {
super();
this.m = m;
m.register("development", this);
}
@Override
public void selfAction() {
// TODO Auto-generated method stub
System.out.println("专心科研,开发项目");
}
@Override
public void outAction() {
// TODO Auto-generated method stub
System.out.println("汇报工作,需要资金扶持");
}
}
package mediator;
public class Finance implements Department{
private Mediator m;//持有中介者的引用
public Finance(Mediator m) {
super();
this.m = m;
m.register("finance", this);
}
@Override
public void selfAction() {
// TODO Auto-generated method stub
System.out.println("数钱");
}
@Override
public void outAction() {
// TODO Auto-generated method stub
System.out.println("汇报本季度消费开支情况");
}
}
package mediator;
public class Client {
public static void main(String[] args) {
Manager m = new Manager();
Market mk = new Market(m);
Development dt = new Development(m);
Finance f = new Finance(m);
mk.selfAction();
mk.outAction();
}
}