|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jul 2007
Messaggi: 2
|
[Java]Polimorfismo e implementazione specifiche UML
Linko direttamente un altro forum su cui ho fatto la stessa domanda:
http://www.universitor.it/phpBB2/vie...?p=51001#51001 ovviamente si tratta di un esempio di polimorfismo, solo che mi sembra poco elegante che si abbia un campo nella classe madre e uno nelle classi figlie inizializzate con un solo set, o no? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9454
|
La cosa corretta, secondo me, e' fare riferimento esclusivamente all'interfaccia MaterialeEsame in modo da astrarre dal fatto che l'oggetto sia istanza di Progetto o di Esercizio (Oltre tutto e' del tutto fuori luogo chiamare una classe esercizi... alle classi va "sempre" assegnato un nome singolare... la cosa corretta, imho, sarebbe stato chiamare quella classe Compito che appunto e' un concetto corretto per indicare una aggregazione di esercizi).
I metodi messi a disposizione da MaterialeEsame, poi, a runtime, andranno ad utilizzare i metodi "giusti" di Progetto o di Compito a seconda della situazione, il tutto in maniera trasparente.
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C. |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Jul 2007
Messaggi: 2
|
scusami ma sono un po' niubbo: Se definisco un oggetto come MaterialeEsame, essendo Java un linguaggio fortemente tipato, avrei a disposizione solo i metodi della classe MaterialeEsame, e non quelli di Progetto o Esercizi, o sbaglio?
Forse implementando dei metodi astratti nella classe MaterialeEsame? Cmq credo che le intenzioni del disegnatore fossero queste: chi ha visibilità di studTriennale o Specialistica, può vedere il materiale d'esame come progetto o esercizi, mentre chi vede uno studente solo come tale ha accesso solo al materiale d'esame in generale. |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9454
|
Quote:
Se hai un oggetto di tipo apparente MaterialeEsame tu devi fare riferimento esclusivamente ai metodi in esso definiti (A meno di non fare un cast esplicito magari con try-catch, il che a me non sembra molto "chic"...) Cio' non toglie che, come hai intuito, in MaterialeEsame vi possano essere dei metodi astratti che a runtime invocano i "corrispettivi" metodi concreti implementati in Progetto e in Esercizi.
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:06.