我正在开发一款多人游戏,其中有一个模块可以根据服务器发送的通知进行操作。例如:其他玩家的行动,得分更新,行动等等。
我收到了json格式的通知。我想知道是否存在某些编码模式会自动向其相应的处理程序发送不同的通知。非常感谢您的帮助。
答案 0 :(得分:1)
嗯,不能说这是否归类为模式:
我对它的看法是简单地创建一个单独的类,让我们称之为JSONGameStateFilter,根据接收到的值加上游戏状态来过滤JSON对象
类似的东西:
public class JSONGameStateFilter() {
public interface GameInterface1 {
// callback methods for activity 1
// example: public void newPlayerArrived(String name, int score);
// ...
}
public interface GameInterface2 {
// callback methods for activity 2
}
public interface GameInterface3 {
// callback methods for activity 3
}
private GameInterface1 callback1;
private GameInterface2 callback2;
private GameInterface3 callback3;
private JSONGameStateFilter instance;
public static JSONGameStateFilter getInstance() {
if (instance != null) {
return instance = new JSONGameStateFilter();
}
}
private JSONGameStateFilter() {}
public void registerListener(GameInterface1 callback) {
// called by Activity1 implementing GameInterface1
// by JSONGameStateFilter.newInstance().registerListener(this);
this.callback1 = callback;
}
public void registerListener(GameInterface2 callback) {
this.callback2 = callback;
}
public void registerListener(GameInterface3 callback) {
this.callback3 = callback;
}
public void filterJSON(JSONObject object) {
// read JSON and gamestate
// depending on situation call the right callback
// example: if (callback1 != null) callback1.newPlayerArrived(name, score)
}
}
这种方法的设计是在每个活动上实现各种回调(片段的已知模式,以便与活动进行通信)。
这是现在未经测试和编写的,但我相信它会运作良好。