Namensraum

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Ein Namensraum (engl. namespace) ist ein Begriff aus der Programmierung.

Jeder nicht nur lokal benötigte Bezeichner - das heißt Namen von beispielsweise global verwendbaren Variablen, Funktionen oder Klassen - sollte eindeutig sein. Mit zunehmender Projektgröße wird es schwerer, solche Namen zu finden und die Übersicht darüber zu behalten. Namen sollen auch nicht zu lang und unhandlich werden. Vor allem auch das Einbinden von Bibliotheken anderer Programmierer wird zur Herausforderung, weil diese unabhängig voneinander arbeiten und sich nicht weltweit absprechen können. Namensräume lösen das Problem, indem sie einen eindeutigen Namen vor den eigentlichen kurzen Namen stellen. Ein Namensraum kann dabei zum Beispiel aus dem Namen einer Firma, einer Person, eines Projektes, einer Domain, eines Themengebiets oder einer Kombination von diesen zusammengesetzt werden. Lokal kann mit den kurzen Namen gearbeitet werden, übergreifend und/oder um Eindeutigkeit herzustellen, verwendet man den Namen inklusive Namensraum.

Das (abstrakte) Beispiel zeigt zwei Projekte unterschiedlicher Hersteller. Projekt_X und Projekt_Y sind zwei Namensräume. Klasse_A ist ein Bezeichner, der hier für den doppelt vergebenen Namen einer Klasse steht.

  • Projekt_X.Klasse_A
  • Projekt_Y.Klasse_A

Obwohl Klasse_A zweimal vorkommt, lassen sich beide durch Voranstellen des Projektnamens voneinander unterscheiden und eindeutig ansprechen.

Innerhalb eines Projektes können gleichnamige Klassen durch ihr Themengebiet unterschieden werden.

  • Projekt_X.Thema_1.Klasse_A
  • Projekt_X.Thema_2.Klasse_A

Ein weiterer Effekt ist, dass mittels Namensräumen auch eine organisatorische Struktur erstellt werden kann.

Vergleichbare Probleme und deren Lösungen in Gebieten abseits der Programmierung:

  • Personen mit dem gleichen Vornamen lassen sich durch Voranstellen von Wohnort und Nachname unterscheiden.
  • Dateien können denselben Namen nebst Erweiterung haben, wenn sie in unterschiedlichen Pfaden gespeichert sind.

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]