www.wikidata.de-de.nina.az
Der Namensraum englisch namespace ist ein Begriff aus der Programmierung Dabei werden vor allem bei der objektorientierten Programmierung die Namen fur Objekte in einer Art Baumstruktur angeordnet und uber entsprechende Pfadnamen eindeutig angesprochen Vereinfacht bedeutet dies dass innerhalb eines solchen Raumes jeder Name eindeutig ein Objekt bezeichnet Der gleiche Name kann jedoch in einem anderen Namensraum wieder frei zur Bezeichnung eines anderen Objekts benutzt werden Ausserdem konnen diese unabhangigen Namensraume innerhalb einer Hierarchie verbunden werden Auch die MediaWiki Software ist in Namensraume aufgeteilt Inhaltsverzeichnis 1 Technische Details 2 Beispiele 2 1 C 2 2 C 2 3 PHP 3 Offentliche Namensraume 4 Siehe auch 5 WeblinksTechnische Details BearbeitenEin Name identifiziert ein Objekt Zur eindeutigen Zuordnung ist jedoch der entsprechende Kontext der Namensraum zu beachten Die Beschreibung geschieht in der Programmierung ublicherweise durch die sogenannte Punktnotation wobei analog zu einer Baumstruktur die einzelnen Objekte mit ihren Eigenschaften Attribute und Methoden angesprochen werden Neben der Punktnotation sind aber auch andere Zeichen gebrauchlich so wie z B bei Dateinamen mit Schragstrichen oder umgekehrten Schragstrichen Einige Namensraume z B Dateisysteme sind hierarchisch aufgebaut d h sie konnen selbst wieder aus Namensraumen bestehen Namensraume werden dazu verwendet Konflikte bei der Namensvergabe zu verhindern Graphisch sind Namensraume mit Baumen aquivalent d h sie haben eine Wurzel einen festen definierten Ausgangspunkt Knoten Verzeichnisse und Blatter Objekte Die Idee von Namensraumen wird auch in anderen Bereichen unter anderen Namen verwendet z B in der Telefonie Jeder Teilnehmer erhalt eine individuelle Rufnummer z B 4711 und diese wird lokal vergeben Das Telefonnetz ist hierbei in Unternetze unterteilt und die Identifikation erfolgt uber die Vorwahl Somit kann jede Rufnummer mehrfach vergeben werden sie muss nur innerhalb des Unternetzes eindeutig sein Bei einem Anruf im selben Vorwahlbereich reicht somit die Angabe der Rufnummer 4711 Soll ein Teilnehmer aus dem Vorwahlbereich 0815 kontaktiert werden der ebenfalls die Rufnummer 4711 besitzt so wahlt man die 0815 vor Durch diese Technik konnen mehrere Teilnehmer die gleiche Rufnummer 4711 besitzen In diesem Beispiel ware die 0815 der Namensraum 4711 der eigentliche Name und der Ziel Telefonanschluss das identifizierte Objekt Beim Erstellen von Programmen kann ein Autor unter Benutzung von Namensraumen grosse Programmpakete mit vielen definierten Namen schreiben ohne sich Gedanken machen zu mussen ob die neu eingefuhrten Namen in Konflikt mit anderen Namen stehen Im Unterschied zu der Situation ohne Namensraume wird hier nicht der ganze Name neu eingefuhrt sondern nur ein Teil des Namens namlich der des Namensraumes Ein Namensraum ist ein deklaratorischer Bereich der einen zusatzlichen Bezeichner an jeden Namen anheftet der darin deklariert wurde Dieser zusatzliche Bezeichner macht es weniger wahrscheinlich dass ein Namenskonflikt auftritt mit Namen die anderswo im Programm deklariert wurden Es ist moglich den gleichen Namen in unterschiedlichen Namensraumen ohne Konflikt zu verwenden auch wenn der gleiche Name in derselben Ubersetzungseinheit vorkommt Solange er in unterschiedlichen Namensraumen erscheint ist jeder Name eindeutig aufgrund des zugefugten Namensraumbezeichners Die meisten modernen Programmiersprachen unterstutzen Namensraume Die Auszeichnungssprache XML unterstutzt ebenfalls Namensraume wobei das Prafix durch einen Doppelpunkt vom lokalen Namen getrennt wird Fur viele Programmiersprachen ist der Namensraum ein Kontext fur ihre Bezeichner In einem Betriebssystem ist ein Beispiel fur einen Namensraum ein Verzeichnis Jeder Name in einem Verzeichnis identifiziert eine Datei oder ein Unterverzeichnis eindeutig Namen in einem Namensraum konnen in der Regel nicht mehr als eine Bedeutung haben Das heisst verschiedene Bedeutungen konnen nicht denselben Namen im selben Namensraum haben Ein Namensraum wird auch als Kontext bezeichnet da derselbe Name in verschiedenen Namensraumen unterschiedliche Bedeutungen haben kann die jeweils fur seinen Namensraum geeignet sind In der Programmiersprache Java haben Bezeichner die in Namensraumen angezeigt werden einen kurzen lokalen Namen und einen eindeutigen langen qualifizierten Namen fur die Verwendung ausserhalb des Namensraums Einige Compiler fur Sprachen wie C kombinieren Namensraume und Namen fur den internen Gebrauch im Compiler in einem Prozess der name mangling genannt wird Neben der oben beschriebenen technischen Verwendung der abstrakten Sprache verfugen einige Programmiersprachen unter anderem uber ein bestimmtes Schlusselwort das zur expliziten Steuerung von Namensraumen verwendet wird Beispiele BearbeitenC Bearbeiten namespace Germany string anthemTitle Das Lied der Deutschen namespace Austria string anthemTitle Land der Berge void output1 string anthemTitle Schweizerpsalm cout lt lt Germany anthemTitle lt lt endl Ausgabe Das Lied der Deutschen cout lt lt Austria anthemTitle lt lt endl Ausgabe Land der Berge cout lt lt anthemTitle lt lt endl Ausgabe Schweizerpsalm void output2 using namespace Germany cout lt lt anthemTitle lt lt endl Ausgabe Das Lied der Deutschen cout lt lt Austria anthemTitle lt lt endl Ausgabe Land der Berge void output3 using namespace Austria cout lt lt Germany anthemTitle lt lt endl Ausgabe Das Lied der Deutschen cout lt lt anthemTitle lt lt endl Ausgabe Land der Berge void output4 using namespace Germany using namespace Austria cout lt lt anthemTitle lt lt endl Fehler Referenz auf anthemTitle ist mehrdeutig Namensraume durfen in C auch geschachtelt werden namespace nested1 namespace nested2 namespace nested3 C BearbeitenNamensraume werden in der Programmiersprache C haufig verwendet Alle Klassen des Net Framework sind in Namensraumen organisiert Daruber hinaus werden benutzerdefinierte Namensraume von Programmierern haufig verwendet um ihre Arbeit zu organisieren und Namenskollisionen zu vermeiden Wenn sie auf eine Klasse verweisen sollten sie entweder ihren vollstandig qualifizierten Namen angeben d h den Namensraum gefolgt vom Klassennamen oder eine using Anweisung hinzufugen Dadurch entfallt die Notwendigkeit den vollstandigen Namen aller Klassen in diesem Namensraum anzugeben Im folgenden Beispiel ist System ein Namensraum und Console und Convert sind Klassen die dort definiert sind namespace Space class Program public static void Main string args Console WriteLine Hallo Europa Hallo Amerika int number Convert ToInt32 3 Console WriteLine Hallo number Welt PHP Bearbeiten namespace Fahrzeug PKW use Antrieb Motor class Kleinwagen protected motor public function construct Motor motor this gt motor motor Offentliche Namensraume BearbeitenDomain Name System DNS IPv4 Adressen IPv6 Adressen NSAP Adressen IPX Adressen Rufnummern IMEI Ethernet MAC Adressen UUID Universally Unique Identifier EPC Elektronischer Produktcode EAN European Article Number ISBN Internationale Standardbuchnummer ISSN International Standard Serial Number Object Identifier OID Bei offentlichen Namensraumen gibt es besonders das Problem der Verwaltung denn alle Markt Teilnehmer mussen sich einigen so dass kein Name zwei unterschiedliche Dinge bezeichnet Aus diesem Grund gibt es in der Regel Verwaltungsorganisationen die Namensraume oder Teilbereiche davon verwalten und Ausschnitte davon fur einzelne Teilnehmer reservieren Hier wiederum gibt es das Problem dass diese Verwaltungsorganisationen in der Regel selbst eine Monopol Stellung haben so dass sie bei Gewinnorientierung Monopolpreise zum Nachteil der Teilnehmer erzielen konnten Zudem stellt ein solches Monopol eine Schwachstelle dar denn bei Ausfall der Verwaltungsorganisation kann je nach Integration der Teilnehmer der Geschaftsbetrieb dieser Teilnehmer erheblich gestort werden Dies gilt nicht nur aber auch fur das Domain Name System denn die Namensauflosung muss in diesem Fall online geschehen Siehe auch BearbeitenAdressraum Namensraum UML Namensraum in der Unified Modeling Language 2 0 Namensraum XML Namensraume in XMLWeblinks Bearbeiten nbsp Wiktionary Namensraum Bedeutungserklarungen Wortherkunft Synonyme Ubersetzungen Abgerufen von https de wikipedia org w index php title Namensraum amp oldid 230816454