View Full Version : [java] aiuto per definire una classe per dei menų
*MATRIX*
07-04-2009, 17:18
Ciao Raga
dovrei definire una classe menų principale e due sottomenų A e B
A seconda del valore passato alla funzione showmenu(int) deve partire una delle due sottoclassi.
Faccio un esempio se showmenu(1) deve partire la sottoclasse A mentre se showmenu(2) deve partire la sottoclasse B.Spero di essere stato chiaro.
questa č una bozza
http://img394.imageshack.us/img394/9987/test.png (http://img394.imageshack.us/my.php?image=test.png)
come posso fare?
grazie per l'aiuto
*MATRIX*
07-04-2009, 18:32
Potresti fare cosė.
scusa ma non consoco le due frecce tratteggiate
indicano un passaggio di valori?
tu hai fatto a di tipo A e b di tipo B ma showmenų č di tipo intero lo sostituisco con char?
grazie per la risposta
La freccia tratteggiata indica una dipendenza.
Sarebbe una cosa tipo:
public class MenuPrincipale {
private A a = new A();
private B b = new B();
public void showMenu(int value) {
if(value == 0) {
a.showMenu(value);
} else if(value == 1) {
b.showMenu(value);
}
}
}
public class A extends MenuPrincipale {
public void showMenu(int value) {
fai qualcosa...
}
}
public class B extends MenuPrincipale {
public void showMenu(int value) {
fai qualcos'altro...
}
}
Mi č sembrata la traduzione pių diretta del tuo intento. E' un po' strana perchč in prospettiva orientata agli oggetti hai tre definizioni, due di stato (A e B) ed una di oggetto (MenuPrincipale).
Essendo A e B stati di MenuPrincipale il fatto che la loro definizione dipenda da MenuPrincipale (dipendenza che instauri tramite le relazione gerarchica) č una ripetizione non necessaria. Sarebbe uguale dire:
public class MenuPrincipale {
private A a = new A();
private B b = new B();
public void showMenu(int value) {
if(value == 0) {
a.showMenu();
} else if(value == 1) {
b.showMenu();
}
}
}
public class A {
public void showMenu() {...}
}
public class B {
public void showMenu() {...}
}
Che a sua volta č la stessa cosa di:
public class MenuPrincipale {
public void showMenu(int value) {
if(value == 0) {
showMenu000();
} else if(value == 1) {
showMenu001();
}
}
public void showMenu000() {...}
public void showMenu001() {...}
}
Ha senso separare le definizioni di stato A e B se esiste almeno un altro oggetto nel tuo sistema che richieda A o B come parte della propria definizione.
Essendo tuttavia la relazione di dipendenza di definizione transitiva (se una definizione A dipende da B e B dipende da C allora A dipende da C) eviterei di rendere A e B dipendenti da MenuPrincipale a meno che nel tuo sistema non risulti che anche MenuPrincipale debba essere uno stato e non un oggetto.
Questo giusto per confonderti un attimo le idee :D.
*MATRIX*
09-04-2009, 09:24
grazie per avermi confuso le idee ulteriormente:doh: :hic: :D :D
io dovrei far solo il diagramma uml almeno per ora il codice dopo quindi la situazione č un po pių facile
anche se le dipendenze non le ho mai usate
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.