Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-12-2011, 11:15   #1
Mulder90
Senior Member
 
L'Avatar di Mulder90
 
Iscritto dal: Aug 2008
Città: Firenze
Messaggi: 317
[Java] - Rimpiazzare switch-case

Vi spiego il problema.
Ho un progetto che contiene un file Pincopallino.java così strutturato:

Codice:
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?
Mulder90 è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2011, 11:38   #2
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2789
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.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2011, 19:06   #3
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Guardati qualcosa riguardo l'open-closed principle
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 19-12-2011, 18:29   #4
nico159
Senior Member
 
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
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
__________________
In a world without fences, who needs Gates?
Power by: Fedora 8 - Mac OS X 10.4.11

Ultima modifica di nico159 : 19-12-2011 alle 18:33.
nico159 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:24.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v