Namespace- und Klassenaufteiliung

19/03/2009 - 17:25 von Peter Gast | Report spam
Hi
ich entwerfe gerade eine Applikation und eine Frage die sich stellt ist, wie
man am besten die Namespace/Class-Aufteilung vornimmt. Wenn man sich das
Framework anschaut, habe ich zumindest keine ganz schlüssige Erklàrung
gefunden, was man in eine Namespace packt und was in eine Klasse (außer ich
will natürlich Objekte erzeugen)

Wàre folgende Struktur absolut gleichwertig:

Namespace Mathe3D
Class Point3D
End Class
Class Line3D
End Class
End Namespace
Namespace Mathe2D
End Namespace

oder wàre es besser direkt im Stammnamespace die Aufteilung so vorzunehmen

Class Mathe3D
Class Point3D
End Class
Class Line3D
End Class.
End Class
Class Mathe2D
End Class

oder

Namespace MatheEx
Class Mathe3D
Class Point3D
End Class
Class Line3D
End Class
End Class
Class Mathe2D
End Class
End Namespace

oder

oder
Namespace MatheEx
Namespace Mathe3D
Class Point3D
End Class
Class Line3D
End Class
End Namespace
Namespace Mathe2D
End Namespace
End Namespace


Mathe3D oder Math2D im Beispiel werden ja nicht als Objekt erstellt, deshalb
hier Namespace, (Point3D oder Point2D als Objekt zwingend eine Klasse)? Oder
ist das ganze Geschmacksache? Ich bin der einzige Softworker, muss also
keine Rücksicht auf irgendwelche Richtlinien legen, sondern kann ganz
pragmatisch für mich festlegen und natürlich von programmtechnischen
Erfordernissen wie das Projekt aufziehe. Aber ich würde mir gerne vorher
eine qualifizierte Meinung bilden.


Danke Peter
 

Lesen sie die antworten

#1 Elmar Boye
19/03/2009 - 18:17 | Warnen spam
Hallo Peter,

Peter Gast schrieb:
ich entwerfe gerade eine Applikation und eine Frage die sich stellt ist, wie
man am besten die Namespace/Class-Aufteilung vornimmt. Wenn man sich das
Framework anschaut, habe ich zumindest keine ganz schlüssige Erklàrung
gefunden, was man in eine Namespace packt und was in eine Klasse (außer ich
will natürlich Objekte erzeugen)



Es gibt dafür die "Entwurfsrichtlinien zum Entwickeln von Klassenbibliotheken",
an die man sich halten sollte, solange einem kein guter Grund dagegen einfàllt.

Zu Namespaces sagen die:
<URL:http://msdn.microsoft.com/de-de/lib...6.aspx>
"Namen von Namespaces"

Deine Klassen sollten sich also z. B. so benennen:
PeterGast.Math3D.Point3D
PeterGast.Math3D.Line3D
usw.
Hier "Math" anstatt "Mathe", weil Namen aus richtigen Worten
zusammengesetzt werden sollten, und engl. "Math" wàre das
und von der Sprache (engl.) konsistent mit dem Rest.

(Wenn Deutsch: Mathematik, aber auch Linie3D, Punkt3D)

oder wàre es besser direkt im Stammnamespace die Aufteilung so vorzunehmen



Wenn Du der Bibliothek ein eigenes Projekt widmest -
was man hier bevorzugt tun sollte - kannst Du
"PeterGast.Math3D"
als Stammnamespace vorgeben und auf weitere Namespace-
Deklarationen in den Quellen verzichten.

Wenn Du unterschiedliche Namespaces verwenden willst,
beachte dass Visual Basic vor die Namespace Deklaration
den Stamm-Namespace des Projektes setzt.

Dann solltest Du dort den gemeinsamen Teil, z. B. Deinen
Firmennamen angeben (für oben z. B. "PeterGast").

Namespace MatheEx
Namespace Mathe3D



Solche Schachtelung braucht man sich nicht anzutun,
und das Endergebnis wàre das gleiche.

Aus Sicht der CLR wird der Name eines System.Type
immer in seiner Gesamtheit betrachtet:
<URL:http://msdn.microsoft.com/de-de/lib...6.aspx>
"Angeben vollstàndig gekennzeichneter Typnamen"

Gruß Elmar

Ähnliche fragen