首先創建一個Message類,先設置三個屬性,發送方、接收方、消息內容,代表所有的屬性。
Message:

Message
package com.dr.QQ;
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;
}
}
然后創建一個QQ接口QQInterface,接口中包含QQ信息收發的方法。
QQInterface:

QQInterface
package com.dr.QQ;
public interface QQInterface {
void sendMsg(Message msg);
Message receiveMsg(Message msg );
}
然后創建QQ1,作為消息發送方,所以要實現QQInterface接口,重寫發送信息的方法sendMsg。
QQ1:

QQ1
package com.dr.QQ;
public class QQ1 implements QQInterface{
public static void main(String[] args) {
}
public Message receiveMsg(Message content) {
return content;
}
public void sendMsg(Message content) {
Message msg = new Message();
msg.setFrom("QQ1");
msg.setTo("QQ2");
msg.setContent("Hello,i'm 1");
QQ1 q = new QQ1();
q.sendMsg(msg);
}
}
然后創建QQ1,作為消息接收方,所以要實現QQInterface接口,重寫接收信息的方法receiveMsg。
QQ2:

QQ2
package com.dr.QQ;
public class QQ2 implements QQInterface{
public static void main(String[] args) {
}
public Message receiveMsg(Message content) {
String name = null;
Message msg = QQServer.asked(name);
return msg;
}
public void sendMsg(Message content) {
}
}
再然后便是QQServer服務器端,承擔著qq信息的傳遞工作。
QQServer:

QQServer
package com.dr.QQ;
import java.util.HashMap;
import java.util.Map;
public class QQServer {
public static void main(String[] args) {
}
static Map<String ,Message> serverMap = new HashMap<String,Message>();
public static void ServerReceiveMsg(Message msg){
serverMap.put(msg.getTo(), msg);
}
public static Message asked(String name){
Message msg = serverMap.get(name);
return msg;
}
}
最后寫一個測試類Test。
Test:

Test
package com.dr.QQ;
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 msg = new Message();
msg.setFrom("QQ1");
msg.setTo("QQ2");
msg.setContent("Hi !");
msgList.add(msg);
QQMap.put(msg.getTo(), msgList);
msg = new Message();
msg.setFrom("QQ1");
msg.setTo("QQ2");
msg.setContent("How are you ?");
msgList.add(msg);
QQMap.put(msg.getTo(), msgList);
List<Message> qq2List = QQMap.get("QQ2");
for(Message m:qq2List){
System.out.println(m.getContent());
}
}
}
運行測試類,查看結果:
posted on 2010-10-27 17:33
Mineralwasser 閱讀(143)
評論(0) 編輯 收藏