Interfaccia (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Aggiunte
Riga 60:
 
== Interfaccia software ==
{{Per approfondire|Application binary interface|Application programming interface}}
=== Interfaccia utente ===
{{vedi anche|Interfaccia utente}}
[[File:KDE_4.png|thumb|Interfaccia [[KDE]]]]
Probabilmente l'esempio che risulta più comune e facilmente comprensibile è quello di [[interfaccia utente]]. In questo caso l'interfaccia rappresenta quella componente, che assume ad esempio un software, per far sì che l'utente riesca a comunicare ed interagire con la macchina.
 
=== Interfaccia nella programmazione orientata agli oggetti ===
Riga 70 ⟶ 67:
Da un lato, l'interfaccia di una [[classe (informatica)|classe]] è l'insieme dei dati e dei metodi visibili all'esterno degli [[oggetto (informatica)|oggetti]] che sono istanze di quella classe.
 
La seconda accezione, invece, si trova solo in determinati linguaggi e indica un [[Tipo di dato|tipo]] paragonabile alla classe, ma soggetto a restrizioni ulteriori:. risultaRisulta compostacomposto esclusivamente di [[Metodo (informatica)#Metodi astratti|metodi astratti]] ed eventualmente da un insieme di [[campo (informatica)|campi]] visibili all'esterno di essaesso, funzionando quindi come punto di incontro tra componenti simili che hanno una struttura interna diversa. Si avvicina in questo ad una [[classe astratta]], pur presentando caratteristiche distinte. In altre parole un'interfaccia definisce un "contratto", ovvero un insieme di [[Firma (programmazione)|firme]] di metodi, la cui definizione concreta viene attuata in classi che implementano quell'interfaccia. Pertanto ciascuna classe che implementa un'interfaccia definisce concretamente, in maniera distinta da altre classi che implementano tale interfaccia, i metodi la cui firma è presente nell'interfaccia. In Java, tale implementazione può avvenire in maniera diretta, definendo il "corpo" del metodo nella classe implementante stessa, oppure ereditando tale implementazione da una superclasse, oppure ancora delegando l'implementazione ad una sottoclasse. In Java l'implementazione dei metodi definiti nell'interfaccia deve riguardare la totalità di tali metodi. Java consente inoltre ad una classe di implementare più interfacce e ad un'interfaccia di estendere un'altra interfaccia. Un'interfaccia può anche essere priva di metodi, come nel caso dell'interfaccia marker.
 
Questa seconda accezione si trova in linguaggi come [[Java (linguaggio di programmazione)|Java]] e i linguaggi della famiglia [[.NET]], che non supportano l'[[ereditarietà multipla]] tra classi, ma solo tra interfacce.
 
Le interfacce (intese nella seconda accezione) spesso rappresentano il componente di livello più alto di un'applicazione e, dal punto di vista del ''client'', il più critico. Esse possono essere usate per migliorare l'estensibilità e la [[riusabilità]] di un [[Programma (informatica)|programma]] [[Programmazione orientata agli oggetti|orientato agli oggetti]].
 
=== Interfaccia utente ===
{{vedi anche|Interfaccia utente}}
[[File:KDE_4.png|thumb|Interfaccia [[KDE]]]]
Probabilmente l'esempio che risulta più comune e facilmente comprensibile è quello di [[interfaccia utente]]. In questo caso l'interfaccia rappresenta quella componente, che assume ad esempio un software, per far sì che l'utente riesca a comunicare ed interagire con la macchina.
 
== Altri tipi di interfaccia ==