i

Fachkonzept - Schnittstelle

Was ist eine Schnittstelle?

Wenn man es wörtlich nimmt, ist eine Schnittstelle eine Stelle, an der ein System, das in Teile zerschnitten ist, zusammengesetzt werden kann.

Pflanzenschnittstelle[1]

Technische Systeme benutzen häufig Schnittstellen. Jedes Buchse-Stecker-Paar verwendet eine Schnittstelle, an der die beiden Teilsysteme kontrolliert zusammengesetzt werden.

Antennenstecker[2]

Schnittstellen treten auch bei der Entwicklung von Software-Einheiten auf. Wenn eine Software-Einheit als Modul (Baustein) zur Vefügung gestellt wird, dann muss sehr genau beschrieben werden, welche Daten von diesem Modul verarbeitet werden können, welche Auswirkungen die Verarbeitung der Daten hat und welche Daten vom Modul wieder abgerufen werden können.

Schnittstelle einer Klasse

Die Schnittstelle einer Klasse liefert alle Informationen, die man benötigt, um die Klasse benutzen zu können. Hierzu gehört eine genaue Beschreibung aller (zugänglichen) Attribute und Methoden der Klasse. Für jedes Attribut benötigt man den erwarteten Datentyp, für jede Methode die Signatur (d. h. die genaue Festlegung der Parametertypen und bei Funktionen des Rückgabetyps) sowie eine Verhaltensbeschreibung.

Hinweise zur Beschreibung der Schnittstelle einer Funktion findest du auf der Seite Fachkonzept - Schnittstelle im Kapitel zu Imperativer Programmierung.

Als Beispiel soll hier die Schnittstelle der Klasse Ampel betrachtet werden.

Die Beschreibung der Attribute und die Signaturen der Methoden können dem folgenden Klassendiagramm entnommen werden.

Klassendiagramm

Durch die Wahl der Methodenbezeichner ist das Verhalten der Methoden bereits informell beschrieben. Anhand dieses Beispiels soll im Folgenden nichtsdestotrotz aufgezeigt werden, wie man das Verhalten des Konstruktors und der Methoden genauer beschreiben kann.

#-----------------------------------------------------------
# Ampel
#-----------------------------------------------------------

class Ampel(object):

    def __init__(self, anfangszustand):
        """nachher:
           Ein Objekt der Klasse Ampel ist erzeugt.
           Der Wert des Attributs zustand wird auf den übergebenen
           Parameter gesetzt.
        """


    def setZustand(self, z):
        """vorher:
           Der Wert des Attributs zustand beschreibt eine Ampelphase.
           nachher:
           Dem Attribut zustand ist der Wert des übergebenen Parameters
           z zugewiesen.
        """
        
    def getZustand(self):
        """Die Funktion ändert den Objektzustand nicht.
           Die Funktion liefert als Ergebnis den Wert von zustand zurück.
        """
        
    def schalten(self):
        """vorher:
           Der Wert des Attributs zustand beschreibt eine Ampelphase.
           nachher:
           Der Wert des Attributs zustand beschreibt die nächste Phase gemäß 
           des üblichen Ampelzyklus "rot -> rotgelb > gruen -> gelb -> rot".
        """
        
    def getLampen(self):
        """Die Funktion ändert den Objektzustand nicht.
           Die Funktion liefert als Ergebnis ein Tripel aus Wahrheitswerten,
           die den zur Phase passenden Lampenzustand in der Reihenfolge
           (Lampe-rot, Lampe-gelb, Lampe-grün) beschreibt.
        """

Quellen

Suche

v
7.2.1.2.6
dev.inf-schule.de/oop/python/ampel/modularisierung/konzept_schnittstelle
dev.inf-schule.de/7.2.1.2.6
dev.inf-schule.de/@/page/GQ6nxXBhdLCF4CJu

Rückmeldung geben