関連するクラスとインターフェースの命名


9

データソースとしてObjectParserを使用しIObjectParserDataSourceて、厳密に型指定されたオブジェクトにデータを解析するクラスを作成しました(データは、Excelファイル、テキストファイル、配列、クエリ文字列など)。

私の実装例IObjectParserDataSourceは次のとおりです。

  • TextFileObjectParserDataSource
  • ExcelFileObjectParserDataSource

これらのクラス名は本当に長く複雑に感じられます。

それらに名前を付けることができます:

  • TextFileDataSource
  • ExcelFileDataSource

しかし、これはある程度のあいまいさをもたらし、IObjectParserDataSource一見しただけでは明確に関連するようにはなりませんでした。これらのデータソースの定義はクライアントコードで行われ、混乱や不確実性の可能性を最小限に抑えたいので、これは重要になります。

このようなシナリオでは、これらのクラスにどのような名前を付けますか?


1
あなたの現在の名前は長すぎて複雑ではないと思います。
AakashM 2013

私はこのアイデアを捨てますが、お勧めしません。名前に同じ文字列( "ObjectParserDataSource"など)を頻繁に使用する場合は、頭字語にします。 ExcelFileOPDSTextFileOPDS。入力と画面スペースを少し節約できますが、コードに慣れていない人にはわかりません。
ボブソン2013

回答:


22

私は一般に、このような問題を回避するために、すべての類似オブジェクトを1つの名前空間に貼り付け、それらの名前を簡略化します(可能な場合)。

たとえば、

名前空間ObjectParserDataSources
|
|->クラスTextFileSource
|->クラスExcelFileSource

または、/サービスで動作するオブジェクトのコレクションがObjectParser十分に大きくなる場合は、ObjectParser専用の個別のフォルダーツリーまたはプロジェクトを作成します。

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

特定のファイル内では、インポートステートメントとコードコンテキストにより、通常、それTextFileSourceObjectParserデータソースであることが明確になります。同じコードに同じような名前のクラスが複数ある場合はTextFileSource、フルネームで参照できます。

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

通常、これは非常にまれにしか発生せず、余分な数の単語を入力してもかまいません。


1
あなたは私に同じ答えを入力するの時間を保存:)
マイケル・ブラウン

1
+1。このソリューションは、明瞭さを損なうことなく読みやすさを向上させます。
John Cartwright
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.