Nomenclatura de clases e interfaces relacionadas

9

He creado una ObjectParserclase que analiza los datos en objetos fuertemente tipados utilizando IObjectParserDataSourcecomo fuente de datos (los datos pueden ser un archivo de Excel, un archivo de texto, una matriz, una cadena de consulta, etc.).

Ejemplos de mis implementaciones de IObjectParserDataSourceson:

  • TextFileObjectParserDataSource
  • ExcelFileObjectParserDataSource

Estos nombres de clase se sienten realmente largos y complicados para mí.

Podría nombrarlos:

  • TextFileDataSource
  • ExcelFileDataSource

Pero esto introduce un nivel de ambigüedad y no se relacionan tan claramente a IObjectParserDataSourceprimera vista. Esto se vuelve importante porque la definición de estas fuentes de datos ocurrirá en el código del cliente y deseo minimizar la posible confusión e incertidumbre.

¿Cómo nombrarías estas clases en tal escenario?

Dave New
fuente
1
No creo que sus nombres actuales sean demasiado largos y complicados.
AakashM
Estoy lanzando esta idea, pero no la recomiendo: si usa la misma cadena (como "ObjectParserDataSource") mucho en su nombre, acrónimo. ExcelFileOPDS, TextFileOPDS. Ahorra un poco en escribir y espacio en la pantalla, pero es opaco para alguien que no está familiarizado con el código.
Bobson el

Respuestas:

22

Generalmente trato de solucionar este problema pegando todos los objetos similares en un espacio de nombres y simplificando sus nombres (si puedo hacerlo).

Por ejemplo, tendría

espacio de nombres ObjectParserDataSources
El |
| -> clase TextFileSource
| -> clase ExcelFileSource

O, si la colección de objetos que trabajan con / mantenimiento se ObjectParservuelve lo suficientemente grande, haría un árbol de carpetas o proyecto separado dedicado solo a ObjectParser:

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

Dentro de cualquier archivo dado, las declaraciones de importación y el contexto del código generalmente dejarían bastante claro que TextFileSourcees la ObjectParserfuente de datos. Si hay varias clases con nombres similares en el mismo fragmento de código, puede consultar TextFileSourcepor su nombre completo:

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

Por lo general, ocurre muy raramente y no me importa escribir algunas palabras adicionales.

ikh
fuente
1
Me ahorraste el tiempo de escribir esa misma respuesta :)
Michael Brown
1
+1. Esta solución mejora la legibilidad sin reducir la claridad.
John Cartwright