Fondamenti di Informatica - Università degli studi di Parma
Fondamenti di Informatica - Università degli studi di Parma
Fondamenti di Informatica - Università degli studi di Parma
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Interfaccia<br />
Inviare messaggi<br />
• L’interfaccia è l’insieme dei messaggi che un<br />
oggetto è in grado <strong>di</strong> interpretare<br />
• Un oggetto deve sod<strong>di</strong>sfare la richiesta <strong>di</strong> un<br />
messaggio<br />
• Eseguendo il metodo si sod<strong>di</strong>sfa la risposta<br />
ad un messaggio da parte <strong>di</strong> un agente<br />
nome: carlo<br />
ciclista_A<br />
cambia (marcia)<br />
marcia: 5<br />
vel: 20<br />
bicicletta_rossa<br />
• Il ciclista ciclista_A che vuole cambiare<br />
marcia invia il messaggio all’oggetto<br />
bicicletta_rossa<br />
bicicletta_rossa.cambia(2);<br />
oggetto metodo i parametri<br />
informazioni fornite al<br />
metodo<br />
FI - Algoritmi e Programmazione 97<br />
FI - Algoritmi e Programmazione 98<br />
Approccio OO<br />
• Sono le strutture <strong>di</strong> dati che svolgono le<br />
azioni, non le subroutines<br />
• Il lavoro è svolto dal server, non dal client<br />
• “Cos’ è?” “Com’ è fatto?”<br />
à Data Oriented<br />
• “Cosa può fare per me?”<br />
à Object Oriented<br />
Perché programmare per oggetti?<br />
• Programmare per oggetti non velocizza<br />
l’esecuzione dei programmi...<br />
• Programmare per oggetti non ottimizza l’uso<br />
della memoria...<br />
E allora perchè programmare per oggetti?<br />
• Programmare per oggetti facilita la<br />
progettazione e il mantenimento <strong>di</strong> sistemi<br />
software molto complessi!<br />
FI - Algoritmi e Programmazione 99<br />
FI - Algoritmi e Programmazione 100<br />
Caratteristiche del software non mantenibile<br />
• Rigi<strong>di</strong>tà<br />
q non può essere cambiato con faciltà<br />
q non può essere stimato l’impatto <strong>di</strong> una mo<strong>di</strong>fica<br />
• Fragilità<br />
q una mo<strong>di</strong>fica singola causa una cascata <strong>di</strong> mo<strong>di</strong>fiche<br />
successive<br />
q i bachi sorgono in aree concettualmente separate dalle<br />
aree dove sono avvenute le mo<strong>di</strong>fiche<br />
• Non riusabilità<br />
q<br />
esistono molte inter<strong>di</strong>pendenze, quin<strong>di</strong> non è possibile<br />
estrarre parti che potrebbero essere comuni<br />
Programmazione ad oggetti<br />
• La programmazione ad oggetti, attraverso<br />
l’incapsulazione, consente <strong>di</strong>:<br />
q ridurre la <strong>di</strong>pendenza del co<strong>di</strong>ce <strong>di</strong> alto livello dalla<br />
rappresentazione dei dati<br />
q riutilizzare del co<strong>di</strong>ce <strong>di</strong> alto livello<br />
q sviluppare moduli in<strong>di</strong>pendenti l’uno dall’altro<br />
q avere co<strong>di</strong>ce utente che <strong>di</strong>pende dalle interfacce<br />
ma non dall’implementazione<br />
FI - Algoritmi e Programmazione 101<br />
FI - Algoritmi e Programmazione 102