Come per la progettazione, una costante enum in java è un singleton e, per motivi di utilizzo simultaneo, di solito creo istanze di enum stateless e utilizzo i parametri del metodo per iniettare i dati secondo necessità.Gli oggetti enum dovrebbero essere apolidi?
Esempio:
Attualmente sto creando un servizio REST che ha Operations (implementato come un enum utilizzando una variante del modello di strategia).
public enum Operation {
DO_THIS() {
public Result doSomething(Object theData) {
}
} ,
// Other Operations go here
;
public abstract Result doSomething(Object theData);
}
Ora voglio raccogliere dati su quanto spesso è stata chiamata un'operazione e con quale frequenza ha avuto successo e simili.
È possibile salvare lo stato esternamente quando si utilizza l'istanza di enum, ma sembra piuttosto che lo stato debba essere salvato nell'operazione in quanto l'operazione deve contenere il proprio stato.
Ora la mia domanda generale è:
è un'istanza enum stateful (oltre da problemi di concorrenza) un cattivo design?
senza domande, sì. – user924272