Attualmente sto lavorando su un server IRC in Java. Esiste un certo numero di "modalità" predefinite (ovvero flag) definite nel protocollo IRC. Queste modalità possono essere applicate a un utente o a un canale sul server. Mi chiedo da un punto di vista del design quale sia il metodo migliore per creare un'istanza e fornire l'accesso a queste modalità predefinite.
Allo stato attuale ho un oggetto ModeSet, in cui definisco semplicemente un numero di oggetti in modalità statica.
per es.
class ModeSet {
public static final ChannelMode MODERATED =
new ChannelMode("m", "MODERATED", false, StandardChannelModeStrategy.class)
;
public static final ChannelMode SECRET =
new ChannelMode("s", "SECRET", false, StandardChannelModeStrategy.class)
;
// for easier lookup
public final static HashMap<String, ChannelMode> chanModes =
new HashMap<String, ChannelMode>()
;
static {
chanModes.put(MODERATED.getFlag(), MODERATED);
chanModes.put(SECRET.getFlag(), SECRET);
};
}
Ritengo che questo non sia un modo ideale per fare le cose, ma è comodo da usare per esempio:
if (channel.hasMode(ModeSet.MODERATED)) {
// channel is moderated
}