package org.ustc.mediator;
public interface UnitedNation {
public void declareMessage(Country c,String message);
}
package org.ustc.mediator;
public class Anlihui implements UnitedNation{
private Country usa;
private Country nkorean;
public Country getUsa() {
return usa;
}
public void setUsa(Country usa) {
this.usa = usa;
}
public Country getNkorean() {
return nkorean;
}
public void setNkorean(Country nkorean) {
this.nkorean = nkorean;
}
@Override
public void declareMessage(Country c, String message) {
// TODO Auto-generated method stub
if(c==this.usa)
nkorean.getMessage(message);
else
usa.getMessage(message);
}
}
package org.ustc.mediator;
public abstract class Country {
protected String name;
protected UnitedNation anlihui;
public Country(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public UnitedNation getAnlihui() {
return anlihui;
}
public void setAnlihui(UnitedNation anlihui) {
this.anlihui = anlihui;
}
public abstract void sendMessage(String message);
public abstract void getMessage(String message);
}
package org.ustc.mediator;
public class NorthKorean extends Country{
public NorthKorean(String name) {
super(name);
// TODO Auto-generated constructor stub
}
@Override
public void sendMessage(String message) {
// TODO Auto-generated method stub
anlihui.declareMessage(this, message);
}
@Override
public void getMessage(String msg) {
// TODO Auto-generated method stub
System.out.println(this.name+"获得消息:"+msg);
}
}
package org.ustc.mediator;
public class USA extends Country {
public USA(String name) {
super(name);
// TODO Auto-generated constructor stub
}
@Override
public void sendMessage(String message) {
// TODO Auto-generated method stub
anlihui.declareMessage(this, message);
}
@Override
public void getMessage(String msg) {
// TODO Auto-generated method stub
System.out.println(this.name+"获得消息:"+msg);
}
}
package org.ustc.mediator;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Country usa = new USA("美国");
Country korean = new NorthKorean("朝鲜");
Anlihui anlihu = new Anlihui();
usa.setAnlihui(anlihu);
korean.setAnlihui(anlihu);
anlihu.setNkorean(korean);
anlihu.setUsa(usa);
usa.sendMessage("不准研究和武器,否则发动战争");
korean.sendMessage("主体思想万岁,不怕侵略");
}
}