您的位置:首页 > 其它

大话设计模式 中介者模式

2013-05-03 15:27 253 查看
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("主体思想万岁,不怕侵略");

}

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息