.| Autor | Beitrag |
|---|---|
|
000 03.10.2002, 14:32 Gnomo |
Hi! |
|
Profil || Suche |
|
001 03.10.2002, 14:39 Exec |
also ich benutzt keine namespaces, aba nur, weils nich geht *g* naja, ich weis nich viel davon, lass dich von den gebildeteren beraten ;) --"selbermachen rockt am meisten :D" - -LeJean- |
|
Profil || Suche |
|
002 03.10.2002, 16:15 Kriz |
Namespaces sind eine weitere Methode zur Organisation von Modulen und Libraries. Im Normalfall ist die codetechnisch höchste Instanz die Headerdatei. Angenommen zwei Softwarehäuser erstellen einen Haufen nützlicher Funktionen und Klassen bereit. Beide nennen eine Klasse zufälligerweise gleichsam "CUtility" oder sowas. Du brauchst für deinen Code aber sowohl die Headerdatei der Firma A als auch der Firma B. Irgendwo in deinem Programm wird dann eine Instanz von "CUtility" erzeugt und verwendet. Hm... Blöderweise weiß der Compiler aber nicht, welche Klasse "CUtility" er nehmen soll, die von Firma A oder die von Firma B. Davon abgesehen wird er schon beim Kompilieren meckern wegen doppelter Zuordbarkeit von "CUtility". So hat man eben als nächste Unterscheidungsform die Namespaces (Namensräume) eingeführt. Somit kann man nun zwischen "CUtility" von Firma A und von Firma B unterscheiden:
Es gibt dann mehrere Möglichkeiten, die Namespaces zu verwenden. SInnvoll ist der Scope-Operator: Ich nehme wenig namespaces, weil man bei den Standardsachen eh drauf verzichten kann. --K:R-I)Z++ |
|
Profil || Suche |
|
003 05.10.2002, 12:20 Prefect |
Mir gefällt dieses Beispiel mit FirmaA und FirmaB nicht. Namespaces sollten nicht danach gegliedert werden, wer den Quellcode geschrieben hat, sondern danach, welchen Zweck die einzelnen Funktionen erfüllen (z.B. GUI vs. Filemanagement). Im Beispiel mit den beiden Firmen würde das zwar wahrscheinlich aufs selbe rauslaufen, aber der Gedanke dahinter ist eben ein anderer... cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
004 05.10.2002, 12:37 Mazze |
Ich hab gehört, dass man mit namespaces eigentlich die einzelnen Module abgrenzen sollte. cu BattleTech-MOD: |
|
Profil || Suche |
|
005 05.10.2002, 15:25 Kriz |
Prefect, wie man die Namespaces einsetzt, ist doch vollkommen egal. Das Beispiel mit den Firmen sollte nur mal zeigen, daß Namenskonflikte in einem Gültigkeitsraum mehr oder weniger elegant (löl) gelöst werden können, falls zwei differenzierte Namensräume aufeinander treffen und gleichen Inhalt besitzen. Das man damit auch projektinterne Gleichheiten ausräumen kann, ist mir auch klar, obwohl diese Fälle in meinen Augen eher von schlechter Modulplanung zeugen als von trickreichem Design. Schließlich muß man innerhabl eines Projekts keine Namenskonflikte auslösen. Sowas tritt eigentlich u.U. nur dann auf, wenn Third-Party-Software eingebunden wird. Also ich habe für meine Programme noch nie Namespaces genutzt, weil es schon von vornherein keinerlei Namenskonflikte gibt. Mit persönlich gefällt das URL-System von Java diesbezüglich viel besser, weil man damit schon von vornherein Namenskonflikten aus dem Weg gehen kann. --K:R-I)Z++ |
|
Profil || Suche |

