Oppure

Loading
07/06/12 18:03
Jymmy
Salve a tutti,
Premetto di aver già letto il tutorial 37 sulle interfacce di VB.NET, ma non le ho capite ancora: se l'unica loro utilità è dare alle classi uno scheletro di realizzazione ma nessun sorgente, a cosa servirebbero??

Grazie mille!
aaa
07/06/12 19:19
HeDo

le interfacce sono fondamentali per la realizzazione di programmi con architettura complessa multilayer o multitier.
ti faccio un esempio banale sulla loro utilità.
immagina di partecipare ad un grosso progetto software, ogni programmatore si occupa di una precisa area del programma, ovvero deve realizzare alcuni oggetti.
questi oggetti vengono sviluppati tutti contemporaneamente, ovvero ogni programmatore deve essere in grado di lavorare su i suoi componenti indipendentemente dal lavoro degli altri del team.
la maggior parte degli oggetti che si devono realizzare sono interagenti o interdipendenti.

la soluzione a questo problema è la definizione di una serie di interfacce che rappresentano i comportamenti degli oggetti in via di sviluppo. Le interfacce permettono di astrarre le implementazioni dalle funzionalità e inoltre è possibile realizzare dei "mock", ovvero delle implementazioni monche degli oggetti non ancora terminati in modo da permettere a tutti i programmatori del team di testare il proprio codice durante lo sviluppo. una volta terminato un oggetto semplicemente si sostituisce l'effettiva implementazione al mock e il gioco è fatto senza cambiare una riga di codice.

a tal proposito ti consiglio di approfondire i pattern di sviluppo di tipo IOC (Inversion Of Control) ovvero quegli schemi di sviluppo nei quali il codice che manipola gli oggetti non ha l'effettiva conoscenza della loro provenienza ma si affida ad un Ioc Container per risolvere la creazione / istanziazione / configurazione di oggetti di cui non è nota l'implementazione.

en.wikipedia.org/wiki/…
en.wikipedia.org/wiki/…
en.wikipedia.org/wiki/…
aaa
08/06/12 17:40
Jymmy
Postato originariamente da HeDo:


le interfacce sono fondamentali per la realizzazione di programmi con architettura complessa multilayer o multitier.
ti faccio un esempio banale sulla loro utilità.
immagina di partecipare ad un grosso progetto software, ogni programmatore si occupa di una precisa area del programma, ovvero deve realizzare alcuni oggetti.
questi oggetti vengono sviluppati tutti contemporaneamente, ovvero ogni programmatore deve essere in grado di lavorare su i suoi componenti indipendentemente dal lavoro degli altri del team.
la maggior parte degli oggetti che si devono realizzare sono interagenti o interdipendenti.

la soluzione a questo problema è la definizione di una serie di interfacce che rappresentano i comportamenti degli oggetti in via di sviluppo. Le interfacce permettono di astrarre le implementazioni dalle funzionalità e inoltre è possibile realizzare dei "mock", ovvero delle implementazioni monche degli oggetti non ancora terminati in modo da permettere a tutti i programmatori del team di testare il proprio codice durante lo sviluppo. una volta terminato un oggetto semplicemente si sostituisce l'effettiva implementazione al mock e il gioco è fatto senza cambiare una riga di codice.

a tal proposito ti consiglio di approfondire i pattern di sviluppo di tipo IOC (Inversion Of Control) ovvero quegli schemi di sviluppo nei quali il codice che manipola gli oggetti non ha l'effettiva conoscenza della loro provenienza ma si affida ad un Ioc Container per risolvere la creazione / istanziazione / configurazione di oggetti di cui non è nota l'implementazione.

en.wikipedia.org/wiki/…
en.wikipedia.org/wiki/…
en.wikipedia.org/wiki/…


Ok, le interfacce fanno da "scheletro" a tutti gli oggetti di un certo tipo che vengono creati dal team. Ma se io non fossi in team e non volessi condividere il mio codice con nessuno, qual'è l'effettiva utilità delle interfacce?
aaa