Lembro-me claramente de que, em certa época, a diretriz sugerida pela Microsoft era adicionar o sufixo "Base" a uma classe abstrata para evitar o fato de que era abstrata. Por isso, temos aulas como System.Web.Hosting.VirtualFileBase
, System.Configuration.ConfigurationValidatorBase
, System.Windows.Forms.ButtonBase
, e, claro, System.Collections.CollectionBase
.
Mas eu percebi que, ultimamente, muitas classes abstratas no Framework não parecem estar seguindo essa convenção. Por exemplo, as seguintes classes são todas abstratas, mas não seguem esta convenção:
System.DirectoryServices.ActiveDirectory.DirectoryServer
System.Configuration.ConfigurationElement
System.Drawing.Brush
System.Windows.Forms.CommonDialog
E isso é exatamente o que eu poderia perceber em alguns segundos. Então procurei o que a documentação oficial dizia, para ter certeza de que não estava louco. Encontrei os nomes de classes, estruturas e interfaces no MSDN em Design Guidelines for Developing Class Libraries . Estranhamente, não consigo encontrar nenhuma menção à diretriz para adicionar "Base" ao final do nome de uma classe abstrata. E as diretrizes não estão mais disponíveis para a versão 1.1 do Framework.
Então, estou perdendo o controle? Essa diretriz já existiu? Acabou de ser abandonado sem uma palavra? Tenho criado longos nomes de classe sozinho nos últimos dois anos para nada?
Alguém me jogue um osso aqui.
Atualizar Não estou louco. A diretriz existia. Krzysztof Cwalina reclama sobre isso em 2005.