Visto l’interesse suscitato dal precedente post sulla relazione di ereditarietà, torno sull’argomento per mettere in risalto ulteriori vincoli da essa imposti.
Lo so, a volte anche le costrizioni possono risultare piacevoli… ed è proprio quello che accade con l’ereditarietà tra classi, certamente vincolante ma così immediata nel realizzare il riuso del codice. E allora, per allontanare questi pensieri impuri dai nostri progetti, recitiamo insieme la seguente preghiera tratta da uno dei testi sacri della programmazione ad oggetti:
In questo post voglio condividere alcune osservazioni sulle caratteristiche della relazione di ereditarietà nella programmazione object-oriented. Provo a farlo con un esempio.
Dobbiamo individuare il modello delle classi per una applicazione che gestisca l’archivio dei film di una videoteca. Per ciascun film dobbiamo memorizzare il regista e gli attori. Viene immediato individuare almeno tre classi: Film, Regista e Attore, collegate nel seguente modo:
Diagramma 1 Poiché dobbiamo realizzare delle funzionalità che operano sia sugli attori che sui registi, come ad esempio il motore di ricerca degli artisti, abbiamo bisogno del polimorfismo e quindi introduciamo una classe Artista.