//把事情丢给中间去处理,去跟其他人沟通
//中介咋处理,其实也是挺老土,把所有人存起来,有谁发信息进来,那除了信息,也得把发信息的主体发进来。或者发给谁的标示
//看着main方法里面的代码,写得出来就算了
private abstract class Subject{
public String name;
public abstract void send(String message,Middle mid);
public void get(String message){
System.out.println(message);
}
}
//A主体
public class A extends Subject{
public A(){
super.name = "A";
}
@Override
public void send(String message,Middle mid) {
mid.contact(message, this);
}
}
//A主体
public class B extends Subject{
public B(){
super.name = "B";
}
public void send(String message,Middle mid) {
mid.contact(message, this);
}
}
private class Middle {
java.util.HashMap<String,Subject> hashMap = new java.util.HashMap<String,Subject>();
public Middle(Subject A,Subject B){
hashMap.put("A", A);
hashMap.put("B", B);
}
public void contact(String message,Subject xx) {
Iterator<Entry<String, Subject>> i = hashMap.entrySet().iterator();
while(i.hasNext()){
Entry<String, Subject> temp = i.next();
if(temp.getKey().equals(xx.name))continue;
temp.getValue().get(message);
}
}
}
@SuppressWarnings("rawtypes")
public static void main(String[] args) throws ParseException{
A a = new test().new A();
B b = new test().new B();
Middle mid = new test().new Middle(a,b);
a.send("b你好", mid);
b.send("a你好", mid);