AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Namespaces in Delphi 2005

Namespaces in Delphi 2005

Ein Tutorial von sakura · begonnen am 6. Dez 2004 · letzter Beitrag vom 6. Dez 2004
 
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.421 Beiträge
 
Delphi 12 Athens
 
#3

Re: Namespaces in Delphi 2005

  Alt 6. Dez 2004, 09:47
Namespaces in Delphi 8


Zuerst möchte ich noch einmal darauf eingehen, wie Delphi 8 mit Namespaces umgegangen ist. Hierzu möchte ich zwei einfache Source-Dateien nutzen:
Delphi-Quellcode:
unit Sample.Controls.Base;

interface

type
  TControl = class
  end;

implementation

end.
Delphi-Quellcode:
unit Sample.Controls.Listview;

interface

type
  TListview = class(TControl)
  end;

type
  TItem = class
  end;

implementation

end.
Wen man diese Dateien in Delphi 8 in ein Package kompiliert und sich das Ergebnis mit Hilfe eines Reflektor-Tools betrachtet, so stellt man fest, dass das Package zwei Namespaces enthält: Sample.Controls.Base und Sample.Controls.Listview.

Öffnet man jetzt den Namespace Sample.Controls.Base, so sieht man, dass dieser zwei Klassen enthält. Die eine ist unsere TControl Klasse, die andere heißt Unit. Diese zweite, spezielle Klasse enthält den Initialisierungs- und Finalisierungscode der Sample.Controls.Base Unit, sowie alle Funktionen und Prozeduren, welche auf Unit-Level deklariert/implementiert wurden. Entsprechend sind im Namespace Sample.Controls.Listview die Klassen TListview und TItem sowie die spezielle Klasse Unit enthalten.

Wen man jetzt weitere Units dem Package hinzufügt, so wird man feststellen, dass jede Unit ihren eigenen, eindeutigen Namespace mit allen Klassen sowie der Klasse Unit dem Package hinzufügt.

So, wo ist jetzt das Problem?

Units sind viel einfacher zu benutzen und zu verwalten wenn diese jeweils nur wenige Klassen enthalten. Wie dem auch sei, erstellt man Libraries/Packages mit vielen Units, so sind in den Assemblies entsprechend viele Namespaces enthalten. Das stört uns als Delphientwickler nicht weiter, da der Compiler sich um diese interna sorgt. Allerdings ist dieser Mechanismus für Entwickler, welche andere .NET Sprachen nutzen, sehr umständlich. C# Programmierer müssen so z.B. jeden Namespaces separat importieren was deren Code nur unnötig aufbläht. Auch hat es den Nachteil, dass Delphi.NET Assemblies für Programmierer anderer .NET Sprachen schwerer zu verstehen sind. Wollen/müssen diese den vollständigen Typennamen nutzen, so müssen sie jedes Mal etwas wie das folgende tippen: Sample*.Con*trols*.Base*.TControl oder Sample.Con*trols.Listview.TListview.
Lizbeth W.
 
 

Themen-Optionen Tutorial durchsuchen
Tutorial durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz