Ich erinnere mich ganz deutlich daran, dass Microsoft einmal die Richtlinie hatte, dem Namen einer abstrakten Klasse das Suffix "Base" hinzuzufügen, um offensichtlich zu machen, dass es sich um eine abstrakte Klasse handelt. Deshalb haben wir Klassen wie System.Web.Hosting.VirtualFileBase
, System.Configuration.ConfigurationValidatorBase
, System.Windows.Forms.ButtonBase
und natürlich auch System.Collections.CollectionBase
.
Aber mir ist aufgefallen, dass in letzter Zeit viele abstrakte Klassen im Framework diese Konvention nicht mehr zu befolgen scheinen. Zum Beispiel sind die folgenden Klassen alle abstrakt, folgen aber nicht dieser Konvention:
-
System.DirectoryServices.ActiveDirectory.DirectoryServer
-
System.Configuration.ConfigurationElement
-
System.Drawing.Brush
-
System.Windows.Forms.CommonDialog
Und das ist nur, was ich in wenigen Sekunden finden konnte. Also habe ich nachgesehen, was die offizielle Dokumentation dazu sagt, um sicherzugehen, dass ich nicht verrückt bin. Ich habe die Namen von Klassen, Structs und Interfaces auf MSDN unter Designrichtlinien für die Entwicklung von Klassenbibliotheken gefunden. Seltsamerweise habe ich keine Erwähnung der Richtlinie gefunden, "Base" am Ende des Namens einer abstrakten Klasse hinzuzufügen. Und die Richtlinien sind für Version 1.1 des Frameworks nicht mehr verfügbar.
Also, werde ich verrückt? Hat diese Richtlinie jemals existiert? Wurde sie einfach kommentarlos aufgegeben? Habe ich zwei Jahre lang alleine lange Klassennamen erstellt, umsonst?
Jemand wirf mir einen Knochen zu.
Update Ich bin nicht verrückt. Die Richtlinie hat existiert. Krzysztof Cwalina beschwert sich darüber im Jahr 2005.
0 Stimmen
Wenn Sie diesen Text gelesen haben, beschwert sich Krzysztof lediglich darüber, "einen Satz von Empfehlungen" erhalten zu haben - nicht unbedingt, dass diese Empfehlungen von Microsoft offiziell waren. Ich erinnere mich daran, die Richtlinien von MS gelesen zu haben und gesehen zu haben, dass sie dagegen empfehlen.
1 Stimmen
Ich habe es gelesen, obwohl es das erste Mal ist, dass ich diesen bestimmten Artikel gesehen habe. Es ist tatsächlich eine Erleichterung. Mir hat die Empfehlung nie wirklich gefallen. Das wird mir eine Menge Groll ersparen. :)