相关类和接口的命名


9

我创建了一个ObjectParser类,该类使用IObjectParserDataSource用作数据源将数据解析为强类型对象(数据可以是Excel文件,文本文件,数组,查询字符串等)。

我的实现示例IObjectParserDataSource包括:

  • TextFileObjectParserDataSource
  • ExcelFileObjectParserDataSource

这些类名对我来说真的很长且令人困惑。

我可以给他们起个名字:

  • TextFileDataSource
  • ExcelFileDataSource

但这带来了一定程度的模糊性,IObjectParserDataSource乍一看它们之间并没有那么明显地相关。这一点很重要,因为定义这些数据源将在客户端代码中进行,并且我希望将潜在的混乱和不确定性降至最低。

在这种情况下,您将如何命名这些类?


1
我认为您目前的名字不会太长且令人费解。
AakashM

我将这个想法抛诸脑后,但我不建议您这样做:如果您在命名中经常使用相同的字符串(例如“ ObjectParserDataSource”),请缩写它。 ExcelFileOPDSTextFileOPDS。它节省了一些键入和屏幕空间,但是对于不熟悉代码的人来说是不透明的。
Bobson

Answers:


22

我通常尝试通过将所有相似的对象粘贴到一个名称空间中并简化其名称(如果可以的话)来解决此问题。

例如,将有

命名空间ObjectParserDataSources
|
|->类TextFileSource
|->类ExcelFileSource

或者,如果使用/服务对象的集合ObjectParser足够大,我将制作一个单独的文件夹树或项目专门用于ObjectParser:

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

在任何给定的文件中,import语句和代码上下文通常会很清楚地表明它TextFileSourceObjectParser数据源。如果同一段代码中有多个名称相似的类,则可以TextFileSource使用其全名来引用:

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

它通常很少发生,我也不介意输入多余的单词。


1
您节省了我输入相同答案的时间:)
Michael Brown

1
+1。该解决方案在不降低清晰度的情况下提高了可读性。
John Cartwright
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.