Назви відповідних класів та інтерфейсів


9

Я створив ObjectParserклас, який аналізує дані на сильно набрані об'єкти, використовуючи IObjectParserDataSourceяк джерело даних (дані можуть бути файлом Excel, текстовим файлом, масивом, рядком запиту тощо).

Прикладами моїх реалізацій IObjectParserDataSourceє:

  • TextFileObjectParserDataSource
  • ExcelFileObjectParserDataSource

Ці назви класів мені здаються дуже довгими і перекрученими.

Я міг би їх назвати:

  • TextFileDataSource
  • ExcelFileDataSource

Але це вводить рівень неоднозначності, і вони не настільки чітко пов'язані з IObjectParserDataSourceпершим поглядом. Це стає важливим, оскільки визначення цих джерел даних буде відбуватися в коді клієнта, і я хочу мінімізувати потенційну плутанину та невизначеність.

Як би ви назвали ці класи за таким сценарієм?


1
Я не думаю, що ваші нинішні імена занадто довгі і суперечливі.
AakashM

Я викидаю цю ідею туди, але я не рекомендую її: Якщо ви багато використовуєте ту саму рядок (наприклад, "ObjectParserDataSource"), називаючи її абревіатурою. ExcelFileOPDS, TextFileOPDS. Це економить на друкуванні та екрані, але це непрозоро для того, хто не знайомий з кодом.
Бобсон

Відповіді:


22

Я, як правило, намагаюся обійти цю проблему, вставляючи всі подібні об'єкти в один простір імен і спрощуючи їх імена (якщо я можу це зробити).

Наприклад, мав би

простір імен ObjectParserDataSources
|
| -> клас TextFileSource
| -> клас ExcelFileSource

Або якщо колекція об'єктів, що працюють з / обслуговуються, ObjectParserстане достатньо великою, я б створив окреме дерево папок або проект, присвячений саме ObjectParser:

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

У будь-якому даному файлі висловлювання імпорту та контекст коду зазвичай дають зрозуміти, що TextFileSourceце ObjectParserджерело даних. Якщо в одному і тому ж фрагменті коду є кілька подібних іменів, ви можете посилатися на TextFileSourceйого повне ім'я:

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

Зазвичай це трапляється дуже рідко, і я не проти вводити зайві кілька слів.


1
Ви врятували мені час надрукування тієї самої відповіді :)
Майкл Браун

1
+1. Це рішення покращує читабельність без зниження чіткості.
Джон Картрайт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.