View Full Version : [java] switch pattern?
carter100
04-11-2010, 06:27
JCiao, volevo sapere, quando vi trovate con una serie infinita di switch, esiste qualche pattern da usare?
Grazie
JCiao, volevo sapere, quando vi trovate con una serie infinita di switch, esiste qualche pattern da usare?
Grazie
...cosa intendi per serie infinita?...magari la solzione è rivedere alcuni elementi dell'applicazione...
carter100
04-11-2010, 12:47
Fai conto 2 stringhe, a e b.
switch(a) {
case 1:
switch(b) {
case 'a': //qualcosa
break;
case 'b': //fai altro
//eccetera eccetera.
Immagina che lo switch esterno abbia 3/4 possibili valori, idem lo switch sulla b. Possibili soluzioni?
Grazie ;)
jappilas
04-11-2010, 14:27
il Command (http://it.wikipedia.org/wiki/Command_pattern) dovrebbe esserti utile - non a caso in diamonds ne è stato fatto un uso estensivo proprio per eliminare switch e catene di if ...
in sostanza crei una classe concreta che implementi un' interfaccia monometodo, tipo execute(), per ogni caso dell' if chain o switch - e a runtime invochi l' execute() dell' oggetto corrispondente alla condizione (che avrai istanziato e organizzato come ti è più comodo, ad esempio in una mappa o in un array)
Fai conto 2 stringhe, a e b.
switch(a) {
case 1:
switch(b) {
case 'a': //qualcosa
break;
case 'b': //fai altro
//eccetera eccetera.
Immagina che lo switch esterno abbia 3/4 possibili valori, idem lo switch sulla b. Possibili soluzioni?
Grazie ;)
scusa ma non è come quello di cui si parlava qui (http://www.hwupgrade.it/forum/showthread.php?t=2271839)? o mi sfugge qualcosa?
ciao!
british
carter100
05-11-2010, 08:19
il Command (http://it.wikipedia.org/wiki/Command_pattern) dovrebbe esserti utile - non a caso in diamonds ne è stato fatto un uso estensivo proprio per eliminare switch e catene di if ...
in sostanza crei una classe concreta che implementi un' interfaccia monometodo, tipo execute(), per ogni caso dell' if chain o switch - e a runtime invochi l' execute() dell' oggetto corrispondente alla condizione (che avrai istanziato e organizzato come ti è più comodo, ad esempio in una mappa o in un array)
scusa ma non è come quello di cui si parlava qui (http://www.hwupgrade.it/forum/showthread.php?t=2271839)? o mi sfugge qualcosa?
ciao!
british
Grazie a entrambi, era simile a quel thread, pensavo ci fosse qualcosa di diverso data la (eccessiva) vastità degli switch case.
A una prima lettura il command è simile all'abstract factory, dopo me lo leggo meglio, può far sempre comodo ;)
Grazie ancora!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.