public abstract class Colleague {
protected Mediator mediator;
public Colleague ( Mediator mediator) {
this . mediator = mediator;
}
}
public abstract class Mediator {
public abstract void send ( String message, Colleague colleague) ;
}
public class ConcreteColleague1 extends Colleague {
public ConcreteColleague1 ( Mediator mediator) {
super ( mediator) ;
}
public void send ( String message) {
mediator. send ( message, this ) ;
}
public void notifys ( String message) {
System. out. println ( "同事1得到消息:" + message) ;
}
}
public class ConcreteColleague2 extends Colleague {
public ConcreteColleague2 ( Mediator mediator) {
super ( mediator) ;
}
public void send ( String message) {
mediator. send ( message, this ) ;
}
public void notifys ( String message) {
System. out. println ( "同事2得到消息:" + message) ;
}
}
public class ConcreteMediator extends Mediator {
ConcreteColleague1 colleague1;
ConcreteColleague2 colleague2;
@Override
public void send ( String message, Colleague colleague) {
if ( colleague == colleague1) {
colleague2. notifys ( message) ;
} else {
colleague1. notifys ( message) ;
}
}
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;
}
}