03/07/13 18:09
tuttodiMC
Come da oggetto: che me ne faccio delle innterfacce? Qual é la loro vera utilità?
aaa
05/07/13 19:20
Dedalux
Le interfacce servono principalmente per slegare l'entità dall'implementazione, ossia accedere ai membri definiti nell'interfaccia senza sapere che tipo di classe si sta utilizzando.
Tra i vari vantaggi, questo permette di avere molto flessibilità nel refactoring. Permette infatti di cambiare facilmente l'implementazione senza dover andare a cambiare tutti i 1000 pezzi di codice dove è scritto il nome della classe. (vedi Dependency Injection)
Es.
interfaccia IDataService
implementazioni XMLDataService, JSONDataService, DBFDataService, ecc....
l'intefaccia mettiamo che abbia due metodi LoadData() e StoreData()
sempre che in tutte le implementazioni il valore di ritorno sia IEnumerable<Person>
è possibile lavorare sempre sull'interfaccia, e fregarsene di che database c'è sotto, cosa di cui si occuperà solo chi fornisce l'implementazione giusta all'inizio
senza usare l'interfaccia ci sarebbe bisogno in ogni momento in cui ci fosse bisogno di accedere ai dati, verificare di che tipo di dati si tratta, e scegliere l'implementazione, oltre al fatto che se volessi un giorno cambiare da XML a JSON, dovrei cambiare 10-20-30 volte tutti i punti in cui c'è il nome specifico dell'implementazione, mentre con l'interfaccia solo una volta
se non sono stato chiaro mi scuso ma sono di fretta, domanda pure
aaa
08/07/13 19:43
tuttodiMC
Dedalux apprezzo la professionalità ma non ci ho capito un tubo (ho 15 anni e sono appena entrato nell'informatica). Comunque grazie alla guida di Visual Basic del sito indicatami da GN ho capito la loro utilità. Anche se mi chiedo ancora: ma se deve starci scritto solo il nome dei campi e dei metodi, che senso ha se dopo vado a fare l'implementazione in una classe?
Ultima modifica effettuata da tuttodiMC 08/07/13 19:44
aaa
10/07/13 18:12
Dedalux
L'implementazione la fai proprio sulla base dell'interfaccia.
L'interfaccia dice: la classe che mi implementa deve avere questi membri, con questi nomi, e di questi tipi. Delle loro azioni non sono responsabile io.
Ho provato a rispondere, ma sinceramente non ho capito il tuo dubbio.
Ti domandi che senso abbia l'esistenza dell'interfaccia o che altro?
Se riesci a porre la domanda in modo più esteso provo a risponderti meglio.
Ultima modifica effettuata da Dedalux 10/07/13 18:12
aaa
12/07/13 11:24
tuttodiMC
netarrow mi stai quindi dicendo che l'interfaccia viene utilizzata nello sviluppo in team più che in quello da singolo programmatore?
aaa
12/07/13 12:45
netarrow
No, devono essere utilizzate il più possibile in generale per mantenere il codice loose coupled, estendibile, riutilizzabile manutenibile e testabile. Un caso specifico e concreto di esempio è quello che ti ho fatto io ma il messaggio non voleva essere che in team le usi di più
Lo scopo è produrre un codice che segua i principi SOLID se vuoi approfondire:
en.wikipedia.org/wiki/…_(object-oriented_design)
Ultima modifica effettuata da netarrow 12/07/13 12:45
aaa