Recuerdo claramente que, en un momento, la directriz impulsada por Microsoft era agregar el sufijo "Base" a una clase abstracta para obviar el hecho de que era abstracta. Por lo tanto, tenemos clases como System.Web.Hosting.VirtualFileBase
, System.Configuration.ConfigurationValidatorBase
, System.Windows.Forms.ButtonBase
, y, por supuesto, System.Collections.CollectionBase
.
Pero he notado que, últimamente, muchas clases abstractas del Framework no parecen seguir esta convención. Por ejemplo, las siguientes clases son todas abstractas pero no siguen esta convención:
System.DirectoryServices.ActiveDirectory.DirectoryServer
System.Configuration.ConfigurationElement
System.Drawing.Brush
System.Windows.Forms.CommonDialog
Y eso es justo lo que pude conseguir en unos segundos. Así que busqué lo que decía la documentación oficial para asegurarme de que no estaba loco. Encontré los nombres de clases, estructuras e interfaces en MSDN en Design Guidelines for Developing Class Libraries . Curiosamente, no puedo encontrar ninguna mención de la directriz para agregar "Base" al final del nombre de una clase abstracta. Y las pautas ya no están disponibles para la versión 1.1 del Framework.
Entonces, ¿lo estoy perdiendo? ¿Alguna vez existió esta directriz? ¿Ha sido abandonado sin una palabra? ¿He estado creando nombres de clases largos yo solo durante los últimos dos años por nada?
Que alguien me tire un hueso aquí.
Actualización no estoy loco. La directriz existía. Krzysztof Cwalina se queja de ello en 2005.