Protokoll (objektorientierte Programmierung)
Protokoll ist ein Begriff, der von Besonderem verwendet wird Objekt orientierte Programmierung Sprachen mit einer Vielzahl spezifischer Bedeutungen, die andere Sprachen bezeichnen können Schnittstelle oder Merkmal.
Wenn es anders verwendet wird, ist "Protokoll" a ähnlich wie a Kommunikationsprotokoll, Angabe der Wechselwirkungen zwischen dem Anrufer und dem Objekt.
Zu den Sprachen, die den Begriff "Protokoll" verwenden, gehören:
In diesen Sprachen ist ein Protokoll ein gemeinsames Mittel für diskrete Objekte miteinander kommunizieren. Dies sind Definitionen von Methoden und Werte, die die Objekte zustimmen, um als Teil eines zusammenzuarbeiten, um zusammenzuarbeiten API.
Das Protokoll/die Schnittstelle ist eine Beschreibung von:
- Die Nachrichten, die vom Objekt verstanden werden.
- Die Argumente, mit denen diese Nachrichten geliefert werden können.
- Die Arten von Ergebnissen, die diese Nachrichten zurückgeben.
- Das Invarianten die trotz Modifikationen an den Zustand eines Objekts erhalten bleiben.
- Die außergewöhnlichen Situationen, die von Kunden zum Objekt behandelt werden müssen.
- (Nur für die Verwendung im Kommunikationsstil :) Die Anrufsequenz und Entscheidungspunkte der Methoden, wie sie in UML-Interaktionsdiagrammen dargestellt werden: Kommunikationsdiagramm, Sequenzdiagramm, Interaktionsübersichtsdiagramm/Aktivitätsdiagramm, Zeitdiagramm.
Wenn die Objekte vollständig sind eingekapselt Anschließend beschreibt das Protokoll die einzige Möglichkeit, wie Objekte von anderen Objekten zugegriffen werden können. Zum Beispiel in Java Schnittstellen, das Vergleichbar
Schnittstelle gibt eine Methode an vergleichen mit()
Welche Implementierungsklassen müssen implementiert werden. Dies bedeutet, dass beispielsweise eine separate Sortiermethode jedes Objekt sortieren kann, das die vergleichbare Schnittstelle implementiert, ohne etwas über die innere Natur der Klasse zu wissen (außer dass zwei dieser Objekte mit Hilfe von verglichen werden können vergleichen mit()
).
Etwas Programmiersprachen bieten explizite Sprachunterstützung für Protokolle/Schnittstellen (Grenzflächen (Ada, C#, D, Pfeil, Delphi, gehen, Java, Logtalk, Objekt Pascal, Ziel c, Ocaml, Php, Schläger, Samen7, Schnell). Im C ++ Schnittstellen werden als abstrakte Basisklassen bezeichnet und werden verwendet reine virtuelle Funktionen. Im OcamlObjektorientierte Schnittstellen werden als Klassentypen bezeichnet. Die objektorientierten Merkmale in Perl Unterstützen Sie auch Schnittstellen.
Nicht objektorientierte Sprachen
Obwohl die Gehen Sie Programmiersprache wird im Allgemeinen nicht als objektorientierte Sprache angesehen, es ermöglicht die Definition von Methoden an benutzerdefinierten Typen. Go hat "Schnittstellen" -Typen, die mit jedem Typ kompatibel sind, der einen bestimmten Satz von Methoden unterstützt (der Typ muss die Schnittstelle nicht explizit implementieren). Die leere Schnittstelle, Schnittstelle{}
, ist mit allen Art kompatibel.
Beachten Sie, dass Funktionelle Programmierung und verteilte Programmierung Sprachen verwenden den Begriff Protokoll Ähnlich der Kommunikationsnutzung (d. H. Eine Spezifikation der erlaubten Austausch von Nachrichten, Schwerpunkt auf Austausch, nicht auf Nachrichten). Insbesondere werden das Folgende auch als Teil eines Protokolls in diesen Sprachen angesehen:
- Die erlaubten Sequenzen von Nachrichten,
- Einschränkungen, die an beiden Teilnehmern an der Kommunikation teilgenommen haben,
- Erwartete Effekte, die auftreten, wenn die Nachricht behandelt wird.
Geben Sie Klassen ein in Sprachen wie Haskell, oder Modulsignaturen in Ml und Ocaml, werden für viele der Dinge verwendet, für die Protokolle verwendet werden.
Siehe auch
- Konzept (generische Programmierung)
- Delegation (Programmierung)
- Protokolle in Objektiv-C
- Klasse (Informatik)
- Kapselung (Informatik)
- Öffentliche Schnittstelle
- Liste grundlegender Informatik -Themen
- Programmierschnittstelle
Verweise
- ^ "Die Objektiv-C-Programmiersprache: Protokolle". Apple Inc. Abgerufen 7. Oktober 2012.
- ^ Offizielle Python 3 -Dokumentation, Abstrakte Objektschicht