JS、HTML5ウェブソケット、Javaをバックエンドとして使用してWebゲームを開発しています。私はGsonを使用してjsonを直列化および逆直列化しています。Gson - アクションごとに複数のクラスを避ける
Iは、以下のJSON文字列を生成するために2つのクラス、メッセージおよびデータを作った:
{ "メッセージ":setupGame、 "データ":{ "幅":800、高さ:800、 "ユーザ名" :player1、 "ボール":ヌル}
Messageクラス:
public class Message {
private String message;
private Data data;
public Message(String message, Data data) {
this.message = message;
this.data = data;
}
データクラス:
public class Data {
private int width;
private int height;
private String username;
private Ball ball;
public Data(int width, int height, String username) {
this.width = width;
this.height = height;
this.username = username;
}
public Data(Ball ball) {
this.ball = ball;
}
setupGameのjson文字列でわかるように、 "Ball"は期待どおりにnullです。私は、下記のJSON文字列を達成したいと思います:
セットアップゲーム:
{ "メッセージ":setupGame、 "データ":{ "幅":800、高さ:800、 "ユーザ名":player1 }
ゲーム更新:
{ "メッセージ":gameUpdate、 "ボール":{ "X":600、 "Y":400}}
私は、それぞれのアクションに対して2つのクラス、例えばSetupGameMessage、SetupGameData、GameUpdateMessage、GameUpdateDataを作成しようと考えていました。しかし、これは私が必要とするすべてのjson文字列のための10以上のクラスを作成する必要があります。
コードをよりメンテナンスし、すべての個別のクラス(すべての単一アクションでメッセージとデータ)を防ぐために、これを行うより良い方法があるのだろうかと思います。