Grundlegendes zu Schnittstellen

Abgeschlossen

Eine Schnittstelle ist wie eine to-do Liste oder ein Vertrag. Sie beschreibt, welche Aufträge erledigt werden müssen, ohne anzugeben, wie diese Aufträge ausgeführt werden sollen. Die Vertragsbeschaffenheit von Schnittstellen ermöglicht es mehreren Klassen, dieselben Aufgaben auf eigene weise auszuführen.

Schnittstellen sind wie ein Vertrag

Jedes von ihnen - das Auto, die Person und das Pferd - hat seine eigene einzigartige Art sich zu bewegen. Eine Schnittstelle kann verwendet werden, um die Vertragsanforderung "Sie müssen sich bewegen können" zu definieren, aber die Schnittstelle definiert nicht, wie man sich bewegen soll.

Teile einer Schnittstelle

In C# beschreibt eine Schnittstelle die erforderlichen Eigenschaften und Methoden. Eine Schnittstelle enthält keine Daten selbst, gibt aber an, welche Art von Informationen über Eigenschaften bereitgestellt werden sollen. In einer "Move"-Schnittstelle könnten z. B. "X" und "Y" Eigenschaften sein, die Standortkoordinaten darstellen. Diese Eigenschaften ermöglichen das Abrufen oder Ändern ihrer Werte.

Darüber hinaus definieren Schnittstellen Methoden, bei denen es sich um Aktionen handelt, die ausgeführt werden können. Sie stellen jedoch die Implementierung für diese Methoden nicht bereit. Beispielsweise könnte die "Move"-Schnittstelle einen Vertrag enthalten, der eine "Dance"-Methode erfordert. Was genau passiert jedoch, wenn die "Dance"-Methode von den Objekten aufgerufen wird, die diese Schnittstelle verwenden, unabhängig davon, ob es sich um ein Auto, eine Person oder ein Pferd handelt.

Verwenden einer Schnittstelle

Um eine Schnittstelle zu nutzen, übernehmen Entitäten wie ein Auto, eine Person oder ein Pferd aus dem Beispiel "move" diese als Teil ihrer Funktionalität. Das Auto muss beispielsweise verstehen, wie alle in der Schnittstelle aufgeführten Aufgaben ausgeführt werden. Dieser Prozess der Übernahme einer Schnittstelle durch das Auto wird als "Implementieren" der Schnittstelle bezeichnet. In diesem Prozess stimmt das Auto zu, dem von der Schnittstelle festgelegten "Vertrag" zu folgen und seine eigenen, einzigartigen Methoden zu definieren, um die Aufgaben wie das Fortbewegen durch "Fahren" auszuführen. Ebenso würden die Person und das Pferd auch die Schnittstelle implementieren, wobei jeder seine eigenen einzigartigen Methoden zum "Bewegen" wie "Laufen" oder "Galoppieren" definiert.

Betrachten Sie die Klassen "Person" und "Pferd". Beide implementieren die "Move"-Schnittstelle, und es liegt in der Verantwortung der Klassen "Person" und "Pferd", Methoden zum Bewegen zu definieren.

In der Klasse "Person" könnte "Move" das Gehen, Joggen oder Laufen bedeuten. In der "Pferd"-Klasse könnte "Move" das Gehen, Traben oder Galoppieren bedeuten. Obwohl sie auf unterschiedliche Weise verschoben werden, erfüllen beide Klassen die Anforderung "Verschieben" von der "Move"-Schnittstelle.

Warum eine Schnittstelle verwenden?

Die von einer Schnittstelle definierten Eigenschaften sind nützlich, da sie sicherstellen, dass alle Klassen Informationen auf die gleiche Weise verarbeiten. Eine Schnittstelle erleichtert die konsistentere und einfachere Arbeit mit verwandten Klassen. Solange alle die gleiche Schnittstelle verwenden, können Sie Anweisungen schreiben, die mit allen Arten unterschiedlicher Klassen funktionieren.

Das Implementieren einer Schnittstelle ist wie das Signieren eines Vertrags und die Zustimmung zu bestimmten Aufträgen, die von der Schnittstelle beschrieben werden. Die Durchsetzung von Verträgen durch Schnittstellen hilft beim Aufbau komplexer Klassen, die problemlos verwaltet und aktualisiert werden können.