Schnittstelle
Eine Schnittstelle definiert Methoden- und Eigenschaftsdeklarationen, die ein extern sichtbares Verhalten beschreiben. Sie enthält keine Variablen und keine Implementierung, sondern lediglich die Definition von Methoden und/oder Eigenschaften. Eine Schnittstelle stellt einen Variablentyp dar, der instanziiert werden kann.
Eine Schnittstelle kann über den folgenden Beziehungstyp verfügen:
- Generalisierung: Eine Schnittstelle kann von einer anderen Schnittstelle erben.
Schnittstellen werden wie Klassen dreigeteilt dargestellt. Das Rechteck ist grün und mit <<interface>> überschrieben. Darunter folgt fettgedruckt der Schnittstellenname. Nach der ersten Trennlinie werden die Eigenschaften der Schnittstelle nach folgender Syntax angezeigt:
<Name der Eigenschaft> : <Datentyp> {property}
Nach der zweiten Trennlinie folgen alle Methoden der Schnittstelle. Nach dem Methodennamen wird in runden Klammern ggf. auf eine Variablenübergabe hingewiesen. Falls für eine Methode ein Rückgabetyp deklariert ist, folgt dieser in der rechten Spalte.
<Methodenname>(…) : <Rückgabetyp>
Eigenschaften
„Eigenschaft“ |
Beschreibung |
---|---|
„Bezeichner“ |
Geben Sie hier einen eindeutigen Namen für das selektierte Element ein. Sie können den Namen auch im Klassendiagramm ändern, indem Sie den Namen erst selektieren und mit einem weiteren Klick den Zeileneditor öffnen. |
Schnittstelle editieren
Die folgenden Benutzereingaben sind unter der Bedingung verfügbar, dass „Auswahl“ oder „Selektion“ in „Werkzeuge“ aktiviert ist (Default).
Benutzereingabe im Klassendiagramm | Reaktion im Klassendiagramm | Beschreibung |
---|---|---|
Wählen Sie das Werkzeug „Interface“: Klicken Sie in einen freien Bereich des Diagramms. Der Dialog „Schnittstelle hinzufügen“ öffnet. Geben Sie für das neue Objekt einen Namen ein, passen Sie die Einstellungen an und beenden Sie den Dialog mit „Hinzufügen“. | Eine Schnittstelle wird erstellt. | Das Objekt existiert im Diagramm und im Projekt. Die Ansicht im Projektbaum wird automatisch aktualisiert. |
Klicken Sie auf ein Schnittstellensymbol. | Links oberhalb der Schnittstelle sind nun Symbole sichtbar, die es ermöglichen, Beziehungselemente einzufügen. Das Beispiel links hat expandierte Property- und Methodenlisten nach | |
Klicken Sie auf | Die Schnittstelle wird nur im Diagramm entfernt. | Verwenden sie das flache Entfernen einer Schnittstelle, wenn sie nur in der Klassendiagrammsicht entfernt werden soll. Das Objekt existiert nach wie vor und ist im Projektbaum sichtbar. |
Klicken Sie auf | Die Schnittstelle wird im Diagramm und im Projekt entfernt. | Das Objekt wird entfernt. Danach existiert es nicht mehr. |
Klicken Sie auf | Eine Generalisierung weist ausgehend von der bestehenden Schnittstelle auf die neue Schnittstelle. Die bestehende Schnittstelle erbt von der neuen. | Die bestehende Schnittstelle enthält die Deklaration. Zum Beispiel: INTERFACE I_Sample EXTENDS I_New Beachten Sie, dass die Voreinstellungen im Dialog „Schnittstelle hinzufügen“ von der letzten Anwendung dieses Dialogs stammen. |
Klicken Sie auf | Eine Generalisierung weist von der ersten Schnittstelle zur zweiten Schnittstelle. | Die erste Schnittstelle enthält die Deklaration. Zum Beispiel: INTERFACE I_Sample EXTENDS I_Existent |
Klicken Sie auf | Die Eigenschaften- bzw. Methodenliste minimiert sich. | |
Klicken Sie auf |
| Die Eigenschaften- bzw. Methodenliste wird expandiert. |
Klicken Sie auf den Namen. Ist er selektiert, dann ein weiteres Mal auf ihn klicken. | Nach dem ersten Klick ist der Name blau umrandet. Nach dem zweiten Klick öffnet der Zeileneditor. | Ändern Sie den Schnittstellennamen im Zeileneditor. Die Änderung wird im Projekt synchron und automatisch übernommen. Das heißt, der Objektname im Projektbaum und im Deklarationsteil der POU wird sofort angepasst. |
Doppelklicken Sie auf eine Schnittstelle. | Der zugehörige Objekteditor öffnet mit dem Deklarationseditor. | Editieren Sie die Deklaration. Nach Schließen des Objekts kehren Sie zum Klassendiagramm zurück. Die Änderungen werden automatisch ins Klassendiagramm übernommen. |
Beispiel
- Generalisierung
INTERFACE I_Cylinder EXTENDS I_Base