Dénomination des classes et interfaces associées

9

J'ai créé une ObjectParserclasse qui analyse les données en objets fortement typés en utilisant un IObjectParserDataSourcecomme source de données (les données peuvent être un fichier Excel, un fichier texte, un tableau, une chaîne de requête, etc.).

Des exemples de mes implémentations de IObjectParserDataSourcesont:

  • TextFileObjectParserDataSource
  • ExcelFileObjectParserDataSource

Ces noms de classe me semblent très longs et compliqués.

Je pourrais les nommer:

  • TextFileDataSource
  • ExcelFileDataSource

Mais cela introduit un certain niveau d'ambiguïté et ils ne sont pas devenus aussi clairement liés IObjectParserDataSourceà première vue. Cela devient important car la définition de ces sources de données se fera dans le code client et je souhaite minimiser la confusion et l'incertitude potentielles.

Comment nommeriez-vous ces classes dans un tel scénario?

Dave New
la source
1
Je ne pense pas que vos noms actuels soient trop longs et compliqués.
AakashM
Je lance cette idée là-bas, mais je ne la recommande pas: si vous utilisez beaucoup la même chaîne (telle que "ObjectParserDataSource") dans votre nom, acronyme. ExcelFileOPDS, TextFileOPDS. Cela économise un peu sur la saisie et l'espace d'écran, mais il est opaque pour quelqu'un qui n'est pas familier avec le code.
Bobson

Réponses:

22

J'essaie généralement de contourner ce problème en collant tous les objets similaires dans un espace de noms et en simplifiant leurs noms (si je peux le faire).

Par exemple, aurait

espace de noms ObjectParserDataSources
|
| -> classe TextFileSource
| -> classe ExcelFileSource

Ou, si la collection d'objets travaillant avec / servicing ObjectParserdevient suffisamment grande, je créerais une arborescence de dossiers ou un projet distinct dédié uniquement à ObjectParser:

namespace ObjectParser
|
|-> class ObjectParser
|-> interface IObjectParserDataSource
|
|-> namespace DataSources
|   |
|   |-> class TextFileSource
|   |-> class ExcelFileSource
|
|-> other stuff...

Dans un fichier donné, les instructions d'importation et le contexte de code indiquent généralement clairement qu'il TextFileSources'agit de la ObjectParsersource de données. S'il y a plusieurs classes de même nom dans le même morceau de code, vous pouvez vous référer à TextFileSourceson nom complet:

var parserSource = new ObjectParser.DataSources.TextFileSource(/*...*/);

Cela se produit généralement très rarement et cela ne me dérange pas de taper quelques mots supplémentaires.

ikh
la source
1
Vous m'avez sauvé le temps de taper cette même réponse :)
Michael Brown
1
+1. Cette solution améliore la lisibilité sans réduire la clarté.
John Cartwright