Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VS2010]Interfacce
Forum - C# / VB.NET - [VS2010]Interfacce

Avatar
Jymmy (Normal User)
Newbie


Messaggi: 19
Iscritto: 18/03/2011

Segnala al moderatore
Postato alle 20:03
Giovedì, 07/06/2012
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!


Jymmy
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 21:19
Giovedì, 07/06/2012

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.

http://en.wikipedia.org/wiki/Service_locator_pattern
http://en.wikipedia.org/wiki/Dependency_injection
http://en.wikipedia.org/wiki/Inversion_of_control


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
Jymmy (Normal User)
Newbie


Messaggi: 19
Iscritto: 18/03/2011

Segnala al moderatore
Postato alle 19:40
Venerdì, 08/06/2012
Testo quotato

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.

http://en.wikipedia.org/wiki/Service_locator_pattern
http://en.wikipedia.org/wiki/Dependency_injection
http://en.wikipedia.org/wiki/Inversion_of_control



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?


Jymmy
PM Quote