In LabVIEW kann eine Schnittstelle als Klasse ohne Privatdatenelement betrachtet werden. Deshalb können Schnittstellen in Softwarearchitekturen andere Funktionen erfüllen als Klassen. Schnittstellen sind von mehreren übergeordneten Objekten ableitbar.

Eine Schnittstelle gibt die Rolle vor, die ein Objekt spielen kann, ohne zu definieren, wie diese Rolle ausgeführt wird. Eine von einer Schnittstelle abgeleitete Klasse gibt ihren Objekten die Rolle vor, die diese zu erfüllen haben, und ist darüber hinaus dafür verantwortlich, die genaue Umsetzung dieser Rolle zu definieren. Wenn eine Klasse von mehreren Schnittstellen abgeleitet ist, können ihre Objekte an mehrere Softwaremodule übergeben werden, die für unterschiedliche Rollen erforderlich sind.

Das folgende Projekt enthält die Klasse "Werkzeug" mit mehreren untergeordneten Klassen für verschiedenartige Werkzeuge. Zu dem Projekt gehört auch eine Schnittstelle mit dem Namen "Hebel". Wie Sie sehen, enthält die Klasse "Werkzeug" ein Bedienelement zum Definieren der Daten der Klasse, das bei der Schnittstelle "Hebel" fehlt. Eine Klasse wird durch einen Würfel dargestellt (). Eine Schnittstelle wird durch die Flächen eines Würfels dargestellt (). Schnittstellen und Klassen haben beide die Dateierweiterung .lvclass.

Die folgende Abbildung zeigt die hierarchische Beziehung zwischen der Klasse "Werkzeug", der Klasse "Hausschlüssel" und der Schnittstelle "Hebel". Die Klasse "Werkzeug" und die Schnittstelle "Hebel" sind beide von "LabVIEW-Objekt" abgeleitet. Die Klasse "Hebelwerkzeug" und die Klasse "Schlitzschraubendreher" haben zusätzlich zu ihren eigenen Methoden und den Methoden ihrer übergeordneten Klassen auch Merkmale von der Schnittstelle "Hebel", da beide als Hebel verwendbar sind. Sie enthalten also auch Methoden der Schnittstelle "Hebel". Diese Art der Ableitung ist zulässig, da "Hebel" eine Schnittstelle und keine Klasse ist. Die Klassen "Hebelwerkzeug", "Schlitzschraubendreher" und "Hausschlüssel", die in der Klassenhierarchie nicht miteinander in Beziehung stehen, sind alle von einem übergeordneten Objekt ("Hebel") anstatt von "LabVIEW-Objekt" abgeleitet.

Hinweise zur Benennung von Schnittstellen

Richten Sie sich nach den folgenden Vorgaben, um der erstellten Schnittstelle einen aussagekräftigen Namen zu geben:

  • Beschreiben Sie die Funktion eines von einer Schnittstelle abgeleiteten Objekts durch ein Tätigkeitswort (Verb) oder ein Eigenschaftswort (Adjektiv). Wenn die Schnittstelle beispielsweise zur Spannungsmessung dient, nennen Sie sie "Kann Spannung messen.lvclass". Alles von dieser Schnittstelle abgeleiteten Klassen oder Schnittstellen können eine Spannung messen.
  • Beschreiben Sie die Kategorie der Klassen, die von der Schnittstelle abgeleitet werden, durch ein Hauptwort (Substantiv). Nennen Sie beispielsweise eine Schnittstelle "Hebel.lvclass", wenn die Schnittstelle eine Kategorie von Klassen beschreibt, bei denen es sich um Hebelwerkzeuge handelt.
  • Beginnen Sie den Namen möglichst nicht mit dem Großbuchstaben "I". In den meisten textbasierten Programmiersprachen kennzeichnet das "I" eine Schnittstelle ("Interface"), wohingegen Klassen und Schnittstellen in LabVIEW anhand ihres Symbols unterschieden werden. Die meisten Komponenten der LabVIEW-Entwicklungsumgebung behandeln Klassen und Schnittstellen absichtlich identisch. Für Aufrufer einer Methode ist es im Allgemeinen irrelevant, ob die Methode von einer Schnittstelle oder Klasse stammt. Sie können eine Klasse also in eine Schnittstelle umwandeln oder umgekehrt, ohne den Aufrufercode überarbeiten zu müssen. Um Verwirrung zu vermeiden, empfiehlt es sich daher, den Namen nicht mit einem "I" zu beginnen.

Sehen Sie sich die folgenden Beispielprojekte zur Arbeit mit Schnittstellen an:

  • labview\examples\Object-Oriented Programming\Basic Interfaces\Basic Interfaces.lvproj
  • labview\examples\Object-Oriented Programming\Actors and Interfaces\Actors and Interfaces.lvproj