Schnittstelle

Eine Schnittstelle (Interface) ist ein Teil eines [wiki:System], das dem Austausch von [wiki:Information], [wiki:Energie] oder [wiki:Materie] mit anderen Systemen dient. Eine Schnittstelle wird durch eine Menge von [wiki:Regel] beschrieben, der Schnittstellenbeschreibung.

Im Bereich E-Leaning wird mit(Benutzer-)Schnittstelle die Verbindung zwischen Mensch und Computer notwendige Interface beschrieben, z.B. Tastatur, Maus oder Bildschirm.

Die [wiki:Implementierung] dieser Regeln in ein System ermöglicht diesem den Austausch mit allen Systemen, die diese Schnittstelle zur Verfügung stellen. Bei [wiki:Asymmetrie] Austausch können sich die Schnittstellenbeschreibungen der beteiligten Systeme voneinander unterscheiden, müssen aber untereinander [wiki:Kompatibilität] sein, also zueinander passen (z. B. Stecker und Buchse).

Beispiele für Schnittstellen sind [wiki:Application Programming Interface], [wiki:Musical Instrument Digital Interface] und [wiki:EIA-232]. [wiki:Computer]-Benutzeroberflächen wie die [wiki:Grafische Benutzeroberfläche] werden auch als [wiki:Mensch-Maschine-Schnittstelle] bezeichnet.

Schnittstellen in der Programmierung

Schnittstellen dienen in der [wiki:Programmierung] oft zur Beschreibung der von einem Programm oder einer Bibliothek (.dll unter Windows, .so unter Unix) angebotenen Funktionen oder Methoden. Man spricht in diesem Zusammenhang auch von Application Programming Interface ([wiki:Application Programming Interface]) oder Framework (Rahmenwerk).

Über diese Schnittstellenbeschreibung ist es anderen Anwendungen möglich, auf Funktionalitäten eines anderen Programms oder eines Betriebssystems zugreifen zu können, ohne dessen Implementierung kennen zu müssen. Es müssen nur die Vor- und Nachbedingungen bekannt sein ([wiki:Übergabeparameter]- und [wiki:Datentyp], Rückgabewert- und typ, mögliche Ausnahmen, etc.).

In der [wiki:Objektorientierte Programmierung] (OOP) vereinbaren Schnittstellen gemeinsame Signaturen von Klassen. Das heißt, eine Schnittstelle (engl. interface) vereinbart die Signatur einer Klasse, die diese Schnittstelle implementiert.

Existiert beispielsweise eine Schnittstelle Konto (am besten mit IKonto bezeichnet, damit die Schnittstelle über den Namen identifiziert werden kann), müssen alle Klassen die dieses Interface implementieren, auch die Methoden bereitstellen, die das interface definiert hat. Existieren beispielsweise die Klassen SparKonto, GiroKonto und DepotKonto, und definiert das Interface Konto die Methode getKontostand, so müssen alle Klassen diese Methode bereitstellen.

Später kann man dann durch Zugriff über diese Schnittstelle sicherstellen bzw. garantieren, dass die Methode existiert. Neben der [wiki:Implementation] in Klassen, kann eine Schnittstelle auch in [wiki:Abstrakte Klassen] implementiert werden (somit besitzen alle Unterklassen der abstrakten Klasse die durch das Interface definierten Methoden). Weiterhin kann ein Interface ein anderes beerben. Das entstehende Interface enthält die Signaturen des beerbten Interfaces und kann weitere definieren.

Werden in eine Klasse mehrere Interfaces implementiert und besitzen diese Methoden-Signaturen gleichen Namens und mit der gleichen Signatur (Parametertyp und Rückgabetyp), so muss der Zugriff und die Implementierung in einer Klasse mit einem qualifizierten Namen erfolgen, d. h. durch Voranstellen das Package-Namens ([wiki:Java (Programmiersprache)]) oder des Namespace ([wiki:.NET]). Ein Beispiel in Java:

 public interface IKonto
{ int getKontostand(); // abstrakte Signatur-Definition }
public class SparKonto implements IKonto
{ protected int kontoStand;
// Implementierung der durch IKonto definierten Methode public int getKontostand()
{ return kontoStand; }
... }

Hinweis: Unter Java ist es weiterhin möglich, Konstanten innerhalb einer Interface-Definition zu deklarieren. Alle implementierenden Klassen stehen dann diese Konstanten zur Verfügung. Da Java, und auch Sprachen wie C#, keine Mehrfachvererbung unterstützt, werden Interfaces oft auch als Brücke benutzt, um eine 'virtuelle' Mehrfachvererbung zu implementieren, bei der eine Klasse bzw. deren Instanz über verschiedene Schnittstellen/Signaturen ansprechbar ist.

Siehe auch

[wiki:ASPI], [wiki:Benutzerschnittstelle], [wiki:Grafische Benutzeroberfläche], [wiki:Parallele Schnittstelle], [wiki:Serielle Schnittstelle][wiki:En:Interface] [wiki:Es:Interfaz] [wiki:Ja:インターフェース] [wiki:Pl:Interfejs]



Schnittstelle
HRM.de - Das Netzwerk für Personalwesen. HR-Pedia - Der Wissenspool für das Human Resource Management. HR-Jobbörse