11.07.2014 Views

Fondamenti di Informatica - Università degli studi di Parma

Fondamenti di Informatica - Università degli studi di Parma

Fondamenti di Informatica - Università degli studi di Parma

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!