PDA

View Full Version : [Java] - Rimpiazzare switch-case


Mulder90
16-12-2011, 11:15
Vi spiego il problema.
Ho un progetto che contiene un file Pincopallino.java così strutturato:

public enum Pincopallino {
A,
B,
C
}


Il mio compito è quello di gestire un oggetto(devo implementare dei metodi astratti) e fargli fare qualcosa a seconda dei casi A, B , C

La prima soluzione è stata quella di fare uno switch-case. Questa oltre ad essere una brutta soluzione è anche poco estenfibile,manutenibile ecc...
Ho pensato di usare uno Strategy, quindi di rimpiazzare l'enum con un interfaccia e poi creare classi conrete per i vari casi.
Il problema è che non posso modificare il codice già esistente e quindi mi tocca tenermi l'enum.
Come posso fare?

wingman87
16-12-2011, 11:38
Dovresti descrivere meglio l'interfaccia che devi implementare e cosa puoi e cosa non puoi modificare. Dalla tua descrizione non ho capito abbastanza bene il problema.

ndakota
16-12-2011, 19:06
Guardati qualcosa riguardo l'open-closed principle

nico159
19-12-2011, 18:29
Alcuni risolvono la cosa così: array/dizionario + puntatore funzione
http://www.dotnetperls.com/action-dictionary

Altrimenti puoi usare qualche forma di reflection offerta da Java