设计思路
客户端向服务器发送匹配请求,服务端接收后将客户端Session放入匹配队列中,匹配完成时通知用户。
使用观察者设计模式可以实现这个功能。
代码
观察者代码:
Java util 包拥有Observer 接口,这里根据实际应用自定义参数 Map。
import java.util.Map;
public interface Observer {
public void update(Map map);
}
被观察者接口:
import java.util.List;
public interface Observerable {
public void registerObserver(MatchNode o);
public void removeObserver(MatchNode o);
public void notifyObserver(List matchNodes);
}
匹配节点:
每个节点存放用户数据,用于进行匹配和查找。
import java.util.Map;
public class MatchNode implements Observer {
private Long userId;
private Long sessionId;