package Zhongjiezhe;
public abstract class Collague {
protected Mediator mediator;
public Collague(Mediator mediator)
{this.mediator=mediator;
}
public abstract void Send(String message);
public abstract void Notify(String message);
}
package Zhongjiezhe;
public class ConcreteCollague1 extends Collague {
public ConcreteCollague1(Mediator mediator) {
super(mediator);
// TODO 自动生成的构造函数存根
}
@Override
public void Send(String message) {
mediator.Send(message, this);
}
@Override
public void Notify(String message) {
System.out.println("同事1收到信息"+message);
}
}
package Zhongjiezhe;
public class ConcreteCollague2 extends Collague {
public ConcreteCollague2(Mediator mediator) {
super(mediator);
// TODO 自动生成的构造函数存根
}
@Override
public void Send(String message) {
mediator.Send(message, this);
}
@Override
public void Notify(String message) {
System.out.println("同事2收到信息"+message);
}
}
package Zhongjiezhe;
public abstract class Mediator {
public abstract void Send(String message,Collague collague);
}
package Zhongjiezhe;
public class ConcreteMediator extends Mediator {
private ConcreteCollague1 c1;
private ConcreteCollague2 c2;
public ConcreteCollague1 getC1() {
return c1;
}
public void setC1(ConcreteCollague1 c1) {
this.c1 = c1;
}
public ConcreteCollague2 getC2() {
return c2;
}
public void setC2(ConcreteCollague2 c2) {
this.c2 = c2;
}
@Override
public void Send(String message, Collague collague) {
if(collague==c1)
c2.Notify(message);
else
c1.Notify(message);
}
}
package Zhongjiezhe;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
ConcreteMediator m=new ConcreteMediator();
ConcreteCollague1 c1=new ConcreteCollague1(m);
ConcreteCollague2 c2=new ConcreteCollague2(m);
m.setC1(c1);
m.setC2(c2);
c1.Send("你吃饭了吗");
c2.Send("没有呢,你请客");
}
}