Klassenextension

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Version vom 24. Februar 2011, 18:46 Uhr von Kowa (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „=Definition (von W. Kowarschick)<ref>Kowarschick, W.: Multimedia-Programmierung</ref>= Die zu einer Klasse gehörende Klassenextension is…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Definition (von W. Kowarschick)[1]

Die zu einer Klasse gehörende Klassenextension ist eine (i. Allg. endliche) Menge, die zu jedem Zeitpunkt genau diejenigen Objekte, die der Klasse zugeordnet sind, enthält.

Bemerkungen

Die meisten objektorientierten Programmiersprachen verwalten die Klassenextension nur intern. Das heißt, ein Programmierer kann nicht direkt darauf zugreifen. Es ist allerdings problemlos möglich, die Verwaltung einer Klassenextension mit Hilfe von Klassenzustandsvariablen und -methoden zu realisieren (siehe nachfolgendes Beispiel).

Objektorientierte Datenbanksysteme machen die Klassenextension dagegen immer allen Benutzern zugänglich, die die entsprechenden Rechte haben. In derartigen Systemen wird an Stelle des Begriffs Klassenextension üblicherweise der Begriff Tabelle verwendet. Die dauerhafte Speicherung von Daten in Tabellen ist die wesentliche Aufgabe eines jeden Datenbanksystems.

Beispiel

Im folgenden Beispiel wird die Extension der Klasse Person in einem statischen Attribut extension (der Art Dictionary) zur Verfügung gestellt. Jedes Mal, wenn ein neues Objekt erzeugt wird, fügt der Konstruktor dieses neue Objekt automatisch in die Extension ein. Das automatische Löschen von Elementen aus der Extension ist in Sprachen mit Garbage Collection etwas mühsam, in Sprachen wie C++ kann diese Aufgabe jedoch problemlos von Destruktor übernommen werden.

public class Person
{
  private static var sv_extension: Dictionary = new Dictionary();
    
  public static function get extension(): Dictionary
  {
    return sv_extension;
  }
    
  public function Person(...)
  {
    sv_extension[this] = this;
    ...
  }
}

Quellen


Dieser Artikel ist GlossarWiki-konform.