Sto lavorando su un'architettura client-server non generica in Java.
Attualmente, affronterò il problema di come affrontare Event
-types poiché ogni evento ha attributi diversi, che non si sovrappongono necessariamente. Per ora questo è quello che ho provato:
public interface Event {
public void send(ServerConnection connection);
}
public static class Events {
public class Registered implements Event {
public final int clientId;
public Registered(int clientId) {
this.clientId = clientId;
}
public send(ServerConnection connection) {
// ...
}
}
public class Disconnected implements Event {
public send(ServerConnection connection) {
// ...
}
}
public class Moved implements Event {
public final int clientId;
public final Position position;
public Moved(int clientId, Position position) {
this.clientId = clientId;
this.position = position;
}
public send(ServerConnection connection) {
// ...
}
}
// and many more ....
}
Tuttavia, questo mi rende abbastanza infelice, dal momento che ho voglia di ripetermi spesso. Innanzitutto, stavo pensando di utilizzare un'enumerazione, ma in quel caso avrei valori inutilizzati, poiché gli attributi differiscono da evento a evento.