Interfaccia (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Etichetta: Possibile modifica di prova o impropria
 
(35 versioni intermedie di 22 utenti non mostrate)
Riga 1:
{{F|programmazione|maggio 2012|Questa voce manca completamente di fonti}}
Con '''interfaccia''', nell'informatica, si indicano:ciao
* il punto di incontro o collegamento, spesso [[standard (informatica)|standardizzato]], tra sistemi diversi e/o le modalità per permettere la loro interazione sotto forma di scambio di informazioni;
* nel paradigma di [[programmazione orientata agli oggetti]], gli elementi pubblici di una classe.
 
*Con '''interfaccia''', nell'[[informatica]], si indicano diversi tipi di strumenti [[interfaccia]]. Esso può indicare il punto di incontro o collegamento, spesso [[standard (informatica)|standardizzato]], tra sistemi diversi e/o le modalità per permettere la loro interazione sotto forma di scambio di informazioni; o, nel paradigma di [[programmazione orientata agli oggetti]], gli elementi pubblici di una classe.
== Interfaccia hardware ==
 
== Interfaccia hardware ==
L'interfaccia è il componente fisico o logico che permette a due o più sistemi elettronici di comunicare e interagire.
 
Interfacciare vuol dire quindi collegare, seguendo un formato standard che consenta lo scambio di dati, due o più dispositivi eterogenei in modo da permettere loro lo scambio di informazioni.
 
Dal punto di vista fisico, un'interfaccia è caratterizzata da un [[canale (telecomunicazioni)|canale di trasmissione]] identificato da un [[mezzo trasmissivo]] (es. [[cavo elettrico|cavo]]), due [[connettore elettrico|connettori]] e due [[Porta (informatica)|porte]] o [[Slot (elettronica)|slot]] poste agli estremi della trasmissione e, dal punto di vista logico, da una modalità di [[trasmissione (telecomunicazioni)|trasmissione]] che può essere di tipo [[trasmissione seriale|seriale]] e [[trasmissione parallela|parallelo]]. Il caso tipico è il collegamento tra apparecchiature elettroniche come ad esempio le componenti interne ed esterne ([[periferica|periferiche]]) del [[computer]].
 
=== Interfacce video ===
* [[Interfaccia video|Famiglia di interfacce video]]
 
=== Interfacce a [[Bus (informatica)|bus]] ===
[[File:PCI_Slots_Digon3.JPG|thumb|Slot PCI]]
[[File:AGP,_PCI,_CNR_Sockets_in_PCChips_M925LR_Motherboard.jpg|thumb|Slot AGP]]
 
{{div col|cols=3}}
* [[Industry Standard Architecture|ISA]]
* [[EISA]]
Riga 22 ⟶ 24:
* [[Peripheral Component Interconnect|PCI]]
* [[PCI Express]]
* [[PCI -X]]
* [[Accelerated Graphics Port|AGP]] (per le schede grafiche)
* [[VMEbus]]
Riga 30 ⟶ 32:
* [[MBus]]
* [[SBus]]
{{div col end}}
 
=== Interfacce generiche ===
[[File:Firewire.jpg|90px|thumb|rightupright=0.8|Porte firewire 400]]
[[File:I-Link.jpg|90px|thumb|rightupright=0.8|Porta firewire 800]]
[[File:Electronics---Connector---USB-Female---Detailed---(Gentry).jpg|90px|thumb|rightupright=0.8|Porta USB]]
 
Esistono un certo numero di interfacce generiche, adatte a molti scopi, che in genere i costruttori hanno cura di implementare sempre nei computer che producono, per aumentarne la versatilità. In genere le specifiche per queste interfacce sono standard pubblici, stabilite da enti come l'[[IEEE]] o l'[[ISO]].
 
{{div col|cols=3}}
* [[RS232]] (interfaccia seriale);
* [[RS432]];
Riga 49 ⟶ 54:
* [[Apple Desktop Bus|ADB]] per tastiere e mouse e simili dispositivi di controllo;
* [[SHUGART]] (per [[floppy disk]]);
* [[USB]] (Universal Serial Bus, o [[Bus (informatica)|bus]] seriale universale in italiano, esterno espandibile, in diverse tipologie, capace di fornire alimentazione ai dispositivi tastiera e mouse, fotocamere digitali, ecc.);
* [[HDMI]] (High Definition Multimedia Interface);
* [[Thunderbolt (interfaccia)|Thunderbolt]] (successore di USB) ciao
{{div col end}}
 
AttualmenteSono sicaduti stannoin abbandonandodisuso i lettori per dischetti ([[floppy]]) e le interfacce Centronics (in special modo sui laptop) e allo stesso tempo sia stannofavore installandodei lettori di [[smartcardsmart card]].
 
=== Interfaccia nelle reti ===
Nell'ambito dei [[dispositivi di rete]] e dei terminali [[host]] di rete un'interfaccia rappresenta logicamente una [[porta (informatica)|porta]] fisica di [[connessione (informatica)|connessione]] in ingresso o in uscita al dispositivo allanella quale si inserisce un [[connettore elettrico|connettore]] di un [[cavo elettrico|cavo]] (a volte anche [[wireless]]) per permettere dunque un collegamento dell'apparato con un altro tramite un ''link'' di rete (es. interfaccia [[ethernet]], [[Wi-Fi]], [[USB]]). Tipicamente nel caso degli apparati di rete l'interfaccia fisicamente comprende la [[scheda di rete]] munita dell'alloggio per il connettore che, nel caso dei terminali ([[computer]]), può essere tipicamente o una porta seriale o una porta parallela per il collegamento con le varie [[periferica|periferiche]] o del terminale con la [[rete locale]].
 
== Interfaccia software ==
{{vedi anche|Application binary interface|Application programming interface|Interfaccia (programmazione orientata agli oggetti)}}
=== Interfaccia utente ===
{{vedi anche|Interfaccia utente}}
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 ===
Nei linguaggi di programmazione [[Linguaggio orientato agli oggetti|orientati agli oggetti]], il termine ''interfaccia'' è usato in due accezioni distinte.
Riga 68 ⟶ 71:
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:.<ref>{{cita|Savitch|pp. 657-684}}.</ref> In questo caso l'interfaccia risulta di norma<ref>Un'interfaccia può anche essere vuota, come nel caso dell'interfaccia marker.</ref> composta esclusivamente di [[Metodo (informatica)#Metodi astratti|metodi astratti]] ed eventualmente da un insieme di [[campo (informatica)|campi]] visibili all'esterno di essa. Si avvicina in questo ad una [[classe astratta]], pur presentando caratteristiche distinte.<ref>{{Cita web|url=https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html|titolo=Abstract Methods and Classes|accesso=}}</ref> 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, funzionando quindi come punto di incontro tra componenti simili che hanno una struttura interna diversa.<ref>{{Cita Questaweb|url=https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/types/interfaces|titolo=Interfaces seconda- accezionedefine sibehavior trovafor multiple types|accesso=}}</ref><ref>{{Cita web|url=https://docs.oracle.com/javase/tutorial/java/concepts/interface.html|titolo=What Is an Interface?|accesso=}}</ref> Pertanto ciascuna classe che implementa un'interfaccia definisce concretamente, in linguaggimaniera comedistinta ilda [[Javaaltre (linguaggioclassi diche programmazione)|Java]]implementano etale interfaccia, i linguaggimetodi dellala famigliacui [[firma è presente nell'interfaccia.NET]]<ref>{{Cita web|url=https://docs.oracle.com/javase/tutorial/java/IandI/usinginterface.html|titolo=Implementing an Interface|accesso=}}</ref> In Java, chetale nonimplementazione supportanopuò avvenire in maniera diretta, definendo il "corpo" del metodo nella classe implementante stessa, oppure ereditando tale implementazione da una superclasse, oppure ancora delegando l'[[ereditarietàimplementazione multipla]]ad trauna classi,sottoclasse. maIn soloJava tral'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.
 
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]] [[object oriented]].
 
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]] [[objectProgrammazione orientedorientata agli oggetti|orientato agli oggetti]].
== Altri tipi di interfaccia == ciao
 
=== 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 == ciao
Ciò che costituisce un'interfaccia dipende dalle regole del contesto in cui è inserita ed essa viene progettata seguendo ogni criterio utile per raggiungere il miglior risultato del prodotto che si sta utilizzando: ad esempio, i [[driver]] utilizzati per pilotare delle [[scheda elettronica|schede elettroniche]] inserite all'interno di un calcolatore sono un'interfaccia, che fa sì che la [[CPU]] e la scheda in questione possano comunicare e interagire tra loro.
 
== Note ==
<references/>
 
== Bibliografia ==
* {{Cita libro|titolo = Java. An Introduction to Problem Solving & Programming|autore = Walter Savitch|wkautore = Walter Savitch|editore = Pearson|città = New York|anno = 2019|lingua = en|edizione = 8|ISBN = 978-1-292-24747-2|cid = Savitch}}
 
== Voci correlate ==
Riga 82 ⟶ 98:
* [[Periferica]]
 
== Altri progetti ==
{{interprogetto|preposizione=sull'|wikt=interfaccia}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC|interface|interface}}
 
{{Controllo di autorità}}
{{portale|informatica}}
 
[[Categoria:Terminologia informatica]]
[[Categoria:Programmazione orientata agli oggetti]]ciao