先创建一个message类,属性为发送方、接收方、内容。
Message
public class Message {
private String from;
private String to;
private String content;
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
创建QQInterface接口,内部创建发送和接收消息的方法。
QQInterface
public interface QQInterface {
void sendMsg(Message msg);
Message receiveMsg(String name);
}
创建QQServer服务器,作为消息的转运站。
QQServer
import java.util.HashMap;
import java.util.Map;
public class QQServer {
static Map<String,Message> serverMap = new HashMap<String,Message>();
public static void serverReceiveMsg(Message msg){
serverMap.put(msg.getTo(),msg);
System.out.println(msg.getFrom()+" "+" "+msg.getContent());
}
public static Message asked(String name){
Message msg = serverMap.get(name);
return msg;
}
}
QQ1,实现QQInterface接口及方法,作为发送方。
QQ1
public class QQ1 implements QQInterface{
public static void main(String[] args){
Message msg = new Message();
msg.setFrom("QQ1");
msg.setTo("QQ2");
msg.setContent("I am QQ1 。");
QQ1 q = new QQ1();
q.sendMsg(msg);
}
public void sendMsg(Message msg){
QQServer.serverReceiveMsg(msg);
}
@Override
public Message receiveMsg(String name) {
Message msg = QQServer.asked(name);
System.out.println("******"+msg.getContent());
return msg;
}
}
QQ2,实现QQInterface接口及方法,作为接收方。
QQ2
public class QQ2 implements QQInterface{
public static void main(String[] args){
Message msg = new Message();
msg.setFrom("QQ2");
msg.setTo("QQ1");
msg.setContent("I am QQ2 。");
QQ2 q = new QQ2();
q.sendMsg(msg);
}
public void sendMsg(Message msg){
QQServer.serverReceiveMsg(msg);
}
@Override
public Message receiveMsg(String name) {
Message msg = QQServer.asked(name);
System.out.println("******"+msg.getContent());
return msg;
}
}
创建Test测试类
Test
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test {
public static void main(String[] args){
Map<String,List<Message>> QQMap = new HashMap<String,List<Message>>();
List<Message> msgList = new ArrayList<Message>();
// 第一次发送消息
Message msg1 = new Message();
msg1.setFrom("QQ1");
msg1.setTo("QQ2");
msg1.setContent("HI!");
msgList.add(msg1);
QQMap.put(msg1.getTo(), msgList);
// 第二次发送消息
Message msg2 = new Message();
msg2.setFrom("QQ1");
msg2.setTo("QQ2");
msg2.setContent("Hello World !");
msgList.add(msg2);
QQMap.put(msg2.getTo(), msgList);
List<Message> qq2MsgList = QQMap.get("QQ2");
for(Message m:qq2MsgList){//打印QQ1发给QQ2消息
System.out.println(m.getContent());
}
}
}
结果显示
posted on 2010-10-30 00:23
Mineralwasser 阅读(208)
评论(0) 编辑 收藏