15.06.2013 Views

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Carnielli Efrem: Programmazione a componenti<br />

Def<strong>in</strong>izione ed uso <strong>di</strong> classi, oggetti ed <strong>in</strong>terfacce<br />

Tale classe sfrutta le funzionalità delle superclassi B e C ere<strong>di</strong>tando i meto<strong>di</strong> f(),<br />

g(),l(), mentre sovrascrive il metodo h.<br />

Anche l’object composition, pur essendo un metodo <strong>di</strong>fferente, ha come scopo il<br />

riutilizzo delle funzionalità. Gli oggetti <strong>in</strong>fatti sono composti per riottenere<br />

funzionalità più complesse. Questo approccio richiede che gli oggetti abbiano<br />

<strong>in</strong>terfacce ben def<strong>in</strong>ite essendo l’<strong>in</strong>terno degli oggetti sconosciuto. Siccome gli<br />

oggetti sono trattati solo come delle "black boxe," tale tipo <strong>di</strong> riuso è chiamato blackbox<br />

reuse.<br />

h<br />

l<br />

B C<br />

f c.g()<br />

g<br />

Figura 7.20. Object composition: la classe D ere<strong>di</strong>ta da B ed è composta da C<br />

In questo caso abbiamo che D ere<strong>di</strong>tà h() e l(), è composta da C ma sovrascrive g().<br />

Pren<strong>di</strong>amo un oggetto c (c:C) che chiama g(), tale funzione sarà quella dell’oggetto<br />

c, e non quella def<strong>in</strong>ita <strong>in</strong> D.<br />

Un oggetto d:D può qu<strong>in</strong><strong>di</strong> accedere alla g() <strong>di</strong> D tramite d.g() e può altresì<br />

accedere alla g <strong>di</strong> C tramite il proprio metodo f, qu<strong>in</strong><strong>di</strong> con d.f().<br />

Abbiamo qu<strong>in</strong><strong>di</strong> un oggetto <strong>in</strong>terno (<strong>in</strong>ner object) c ed un oggetto esterno (outer<br />

object) d.<br />

La composizione nasce da un’idea semplice: se un oggetto non ha modo <strong>di</strong><br />

eseguire qualche task personalmente, può <strong>in</strong>viare messaggi ad altri oggetti ,<br />

D<br />

f<br />

g<br />

182

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

Saved successfully!

Ooh no, something went wrong!