Je me souviens très bien qu'à une certaine époque, la ligne directrice imposée par Microsoft consistait à ajouter le suffixe "Base" à une classe abstraite pour éviter qu'elle ne soit abstraite. Ainsi, nous avons des classes comme System.Web.Hosting.VirtualFileBase
, System.Configuration.ConfigurationValidatorBase
, System.Windows.Forms.ButtonBase
et, bien sûr, System.Collections.CollectionBase
.
Mais j'ai remarqué que, dernièrement, beaucoup de classes abstraites dans le Framework ne semblent pas suivre cette convention. Par exemple, les classes suivantes sont toutes abstraites mais ne respectent pas cette convention :
-
System.DirectoryServices.ActiveDirectory.DirectoryServer
-
System.Configuration.ConfigurationElement
-
System.Drawing.Brush
-
System.Windows.Forms.CommonDialog
Et c'est juste ce que j'ai pu trouver en quelques secondes. J'ai donc cherché à savoir ce que la documentation officielle avait à dire, pour m'assurer que je n'étais pas fou. J'ai trouvé le Noms des classes, des structures et des interfaces sur MSDN à l'adresse Directives de conception pour le développement de bibliothèques de classe . Curieusement, je ne trouve aucune mention de la directive consistant à ajouter "Base" à la fin du nom d'une classe abstraite. Et les directives ne sont plus disponibles pour la version 1.1 du Framework.
Alors, est-ce que je perds la tête ? Cette directive a-t-elle jamais existé ? A-t-elle été abandonnée sans mot dire ? Est-ce que j'ai créé de longs noms de classe tout seul depuis deux ans pour rien ?
Que quelqu'un me jette un os ici.
Mise à jour Je ne suis pas fou. La ligne directrice existait. Krzysztof Cwalina s'en plaint en 2005.
0 votes
Si vous lisez cet article, Krzysztof se plaint simplement d'avoir reçu "un ensemble de recommandations", sans nécessairement que ces recommandations soient officielles de Microsoft. Je me souviens avoir lu les directives de MS et les avoir vues déconseiller cette pratique.
1 votes
Je l'ai lu, mais c'est la première fois que je me rappelle avoir vu cet article. C'est un soulagement, en fait. Je n'ai jamais vraiment aimé la recommandation. Cela m'épargnera bien des grognements à partir de maintenant :)