Ereditarietà (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Aggiunto il collegamento a "Ereditarietà multipla" nell'introduzione
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti.
 
Riga 149:
* più classi (nota bene, classi, NON oggetti) devono svolgere operazioni comuni che possono essere raggruppate e attribuite a un'unica classe base (progettare in base all'ereditarietà).
 
Una conseguenza importante della separazione fra ruoli e classi genitrici è che il ''[[compile-time]]'' e il ''[[run-time]]'' del [[codice oggetto]] prodotto sono nettamente separati. L'ereditarietà è chiaramente un costrutto che si applica ''compile-time'', che non modifica la struttura degli oggetti durante il ''run-time''. Infatti i "tipi" degli oggetti istanziati sono già predeterminati durante il ''compile-time''. Come già indicato negli esempi precedenti, quando si progetta la classe Persona, essendo un impiegato un caso particolare di persona, bisogna assicurarsi che la classe Persona contenga solo le funzionalità e i dati comuni a tutte le persone, indipendentemente dal contesto in cui questa classe viene istanziata. In questo modo si è sicuri, ad esempio, che in una classe Persona non verrà mai usato il membro Lavoro, poiché non tutte le persone hanno un lavoro, o, per lo meno, non è garantito a priori che la classe Persona sia istanziata solo per creare oggetti riferibili a persone che hanno un lavoro.
 
Invece, ragionando dal punto di vista della programmazione basata sui ruoli, si potrebbe definire un sottoassieme di tutti i possibili oggetti ''persona'' che svolgono il "ruolo" di impiegato. Le informazioni necessarie a definire le caratteristiche del lavoro svolto verranno inserite solo negli oggetti che svolgono il ruolo di impiegato.
Riga 166:
* è ora possibile passare un oggetto <code>Iscrizione</code> come parametro di una funzione — per esempio di una funzione che deve decidere se una domanda di iscrizione viene accolta — senza dover passare come parametri tutti i dati che specificano i dati personali (nome, età, indirizzo, ecc.)
 
L'uso dei componenti al posto dell'ereditarietà produce anche codice scritto con una [[sintassi]] meno ambigua e più facile da interpretare. Confrontare i due esempi seguenti: nel primo si usa l'ereditarietà:
 
<code>