Was sind Aufrufschnittstellen?

3 Antworten

Aufrufschnittstellen sind Wrapper-Verträge für Klassen. :)

Hilft nicht weiter, hm?

Um das wirklich genau zu erklären, müsste ich jetzt weit ausholen und trotzdem einige Kenntnisse in der OO-Programmierung voraussetzen.

Versuchen wir es deshalb mal neben der Programmierung.

Wenn du ein Haus bauen willst, dann kannst du eine Baufirma anrufen, die sowas schon mal gemacht hat, ihr 300.000 Euro in die Hand drücken und hoffen, dass alles gut geht. Letzten Endes entscheidet sie selbst, wie sie vorgeht, was sie macht und was dabei herauskommt.

Du kannst aber auch einen Vertrag mit ihr schließen, in dem sehr genau beschrieben wird, was wie auszusehen hat und was in den einzelnen Arbeitsschritten herauskommen soll. Sobald ihr diesen Vertrag unterschrieben habt, ist er unveränderlich. Beide können sich darauf verlassen.

Genauso ist es in der Programmierung: (Ja, die Entwickler lernen aus dem wahren Leben. ... also manchmal ... gelegentlich ... hin und wieder ... ;))

Auf der einen Seite gibt es die Bibliotheken mit all ihren schönen Klassen, Vererbungen und all dem Zeug. Meistens benutzen wir Klassen aus ziemlich hohen Ebenen. Das bedeutet: Wird irgendwo in der Hierarchie eine Klasse verändert, kann sich das bis ganz nach oben zu unserer Klasse auswirken.

Um nun zu vermeiden, dass du dermaßen abhängig vom Gutdünken der Bibliotheks-Bastler wirst, gibt es auch hier Verträge. (Wir nennen sie Schnittstellen.) Und diese Verträge beschreiben exakt, was reingeht und was rauskommen soll. Änderungen daran sind, wie bei "echten" Verträgen nicht zulässig.

Das wiederum machen sich "Aufrufschnittstellen" zunutze: Sie sind einzig dazu da, andere Schnittstellen und/oder Klassen "vertraglich zu binden", um damit nach außen - also an dich heran - treten zu können und verbindliche Zusagen zu machen, wie ein bestimmter (Aktions-)Aufruf zu erfolgen hat.

Und selbst wenn den Bibliotheks-Bastlern nun einfallen sollte "Mensch! Wir haben da was vergessen! Das schreiben wir einfach zum nächsten Update mit rein.", kannst du sicher sein: "Meine Aufrufschnittstellen fassen die nicht an! Ganz egal, was sie dahinter basteln." Und das wiederum lässt dich ruhig schlafen, denn deine "angedockte" Software, die fleißig Gebrauch von den Aufrufschnittstellen macht, wird davon nicht berührt. ... Dem Vertrag sei Dank!

Und wenn du dich jetzt fragst, was der Unterschied zwischen "Schnittstelle" und "Aufrufschnittstelle" ist, dann lass dir zwei Dinge sagen:

  1. Wir lieben es, kryptisch zu reden und Verwirrung zu schaffen. (Machen die Angler und Jäger ja schließlich auch.)
  2. Beide sind (fast) identisch; mit dem feinen Unterschied, dass der Begriff Aufrufschnittstelle ein Relikt aus alten OO-Zeiten ist, als man auch Schnittstellen noch (fast) beliebig änderte; so dass man einen "Vertragsbegriff für Unabänderlichkeit" brauchte. Heute wird er deshalb fast ausschließlich im Java-Umfeld und von alten Java-Programmierern angewendet. Die anderen sagen einfach "Schnittstelle" und meinen dabei dasselbe.

Aufrufschnittstellen sind Wrapper-Verträge für Klassen

So, das musste mal gesagt werden, ist doch sonnenklar! ;-)))

1

das ist das worauf das programm aufsetzt, also schnittstellen odfer standards die das programm benutzt um ein sinnvolles ergnis zu erzielen...... das was der mensch ganz unten meint nämlcih APIs trifft es ganz gut.....vom prinzip her......windows software setztauf soche schnittstellen auf die progrqammierstandard sind RPC oder DLL aufrufe wären solche schnittstellen

Meinst du APIs? Das sind Schnittstellen, an denen Programmierer auf die Funktionen von Systemen zugreifen können.

Beispiel: Jemand hat einen Server (zum Beispiel für ein Spiel) und entwickelt eine API, über die jeder bestimmte Sachen steuern kann. Darüber könnte man Statistiken aufrufen, den Server neustarten etc.

Was möchtest Du wissen?