Home Moderne Zeiten Die Operationen Die fertige Spezifikation im Überblick
 Das ATOS-Magazin 3/99
 ATOS Programmierpraxis
 Moderne Zeiten

Konstruktor und Destruktor

Was abschließend zur Schnittstellendefinition noch fehlt, ist die Beschreibung der Parameter beim Anlegen und Freigeben eines Objektes. Beim Freigeben parametrisiert man üblicherweise aber eigentlich nicht mehr. Denkbar wäre zwar vielleicht, verschiedene Freigabemodi anzubieten (etwa "schnell", "speichersparend" o.ä.), in der Praxis kommt so etwas aber fast nie vor.

Beim Anlegen hingegen bietet es sich an, dem Konstruktor bereits erste Informationen über das gewünschte Objekt mit auf den Weg zu geben:

FUNCTION fussballspieler(name$,position&,staerke&)              !call
  '
  ' Diese Funktion legt ein Objekt des Typs fussballspieler an und
  ' gibt die Objektkennung zurück.
  '
  ' name$       => Name des Fußballspielers (bspw. "Lothar Matthäus")
  ' position&   => Position, auf der der Spieler besonders stark ist.
  '                     fussballspieler_position_tor_&
  '                     fussballspieler_position_abwehr_&
  '                     fussballspieler_position_mitte_&
  '                     fussballspieler_position_sturm_&
  ' staerke&    => Staerke des Spielers im Mittel.
  '                     (0 = sehr schlecht, 100 = sehr gut)
  '
ENDFUNC
PROCEDURE fussballspieler_init(ob#,name$,position&,staerke&)    !call
RETURN

Zunächst wird hier vorausgesetzt, daß die symbolischen Konstanten für den Wert von position& anfangs korrekt gesetzt wurden:

  LET fussballspieler_position_tor_&=0
  LET fussballspieler_position_abwehr_&=1
  LET fussballspieler_position_mitte_&=2
  LET fussballspieler_position_sturm_&=3

Dies werden wir aber noch an der geeigneten Stelle nachholen.

Auffallend ist nun, daß der Konstruktor aus zwei Prozeduren besteht. Die Bedeutung der zweiten Prozedur "init" wird später noch erläutert werden.

Die Spezifikation des Destruktors gestaltet sich aufgrund der fehlenden Parameter einfach:

PROCEDURE fussballspieler_exit(ob#)                             !call
RETURN
PROCEDURE fussballspieler_free(ob#)                             !call
  '
  ' Diese Prozedur entfernt ein Objekt des Typs fussballspieler aus
  ' dem Speicher.
  '
RETURN

Auch hier gibt es eine zweite Prozedur "exit", deren Bedeutung später klar werden wird.





Die fertige Spezifikation im Überblick


Copyright © ATOS
Letzte Aktualisierung am 7. November 1999

Home Moderne Zeiten Die Operationen Die fertige Spezifikation im Überblick