Estratto del documento

=>

RIASSUNTO CAPITOLO 10 PROGRAMMAZIONE LIBRO

Adapter

A volte si possono verificare dei casi in cui è necessario usare un codice (come, ad

esempio, una classe) che però originariamente non è sta: pensato per essere usato

con un certo sistema e risulta impossibile o troppo costoso riscriverlo per renderlo

u:lizzabile.

A questo punto un ruolo fondamentale viene svolto dal design pa@ern Adapter il cui

scopo è quello di conver:re l’interfaccia di una classe in un’interfaccia diversa che è

quella a@esa dal codice client.

L’Adapter consente a classi diverse di poter lavorare assieme anche se non

potrebbero a causa delle interfacce compa:bili. Il seguente pa@ern può essere

implementato come class adapter oppure object adapter.

Una presentazione compa@a del pa@ern può essere la seguente:

1. Problema: dato un ogge@o, questo presenta un’interfaccia molto simile ma

non uguale quella che ci serve.

2. Contesto:

i. Si vuole riusare una classe già esistente.

ii. Non si vuole o non si può cambiare l’interfaccia della classe.

iii. Non è pra:co estendere la gerarchia di ereditarietà della classe per

renderla più generale.

3. Soluzione: Si “impacche@a” la classe o l’ogge@o in una classe che fornisce

l’interfaccia a@esa dal codice client fornendo due versioni della soluzione: la

versione per la classe e quella per l’ogge@o.

4. Conseguenza: l’implementazione riceve l’interfaccia a@esa.

Questo design pa@ern, nel caso di soTware, risulta par:colarmente u:le quando si

ha a che fare con sistemi legacy o librerie di terze par: che forniscono interfacce

diverse rispe@o a quelle a@ese dal codice scri@o per un nuovo sistema e che, di

conseguenza, non possono essere riscri@e perché si sprecherebbe troppo tempo o

addiri@ura potrebbe essere impossibile in quanto non disponibile il codice sorgente.

- 2.1: Class Adapter

In questa versione del pa@ern abbiamo una classe (Adapter) che ada@a

l’interfaccia di un’altra classe da ada@are (Adaptee) ad un codice client, usando

l’interfaccia a@esa di una classe astra@a (Target).

Questo :po di implementazione per a@uare la sua soluzione usa l’ereditarietà

mul:pla, le classi astra@e, i metodi virtuali e l’ereditarietà privata.

(GUARDA DISEGNO UML E ESEMPIO DI CLASS ADAPTER)

- 2.2: Object Adapter

Considerate sempre le stesse classi in questa versione, a differenza del Class Adapter,

al posto dell’ereditarietà mul:pla viene usata la composizione per ada@are la classe

che deve essere usata dal codice client.

Si può notare come la composizione consenta anche una maggior

Anteprima
Vedrai una selezione di 3 pagine su 7
Appunti riassuntivi Programmazione (parte 6, adapter e observer) Pag. 1 Appunti riassuntivi Programmazione (parte 6, adapter e observer) Pag. 2
Anteprima di 3 pagg. su 7.
Scarica il documento per vederlo tutto.
Appunti riassuntivi Programmazione (parte 6, adapter e observer) Pag. 6
1 su 7
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Sarina24 di informazioni apprese con la frequenza delle lezioni di Programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Firenze o del prof Marco Bertini.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community