在c#中的不同命名空间中使用具有相同名称的类是个好主意吗?

Joh*_*Cai 6 namespace-organisation

例如,我们有两个用于解析简历的类,一个用于解析Excel,另一个用于解析HTML.我的同事喜欢做的是将这两个类命名为相同的名称并将它们放入不同的命名空间,如下所示:

namespace XX.ResumeParsers.Excel
class ResumeParser{}

namespace XX.ResumeParsers.Html
class ResumeParser{}
Run Code Online (Sandbox Code Playgroud)

我觉得这不是一个好主意,我宁愿重命名这些类,并将它们放入一个命名空间(但如果需要,可以放在不同的文件中):

//in Excel folder under ResumeParsers folder
namespace XX.ResumeParsers
class ExcelResumeParser{}

//in Html folder under ResumeParsers folder
namespace XX.ResumeParsers
class HtmlResumeParser{}
Run Code Online (Sandbox Code Playgroud)

因此,Hierarchy仍然存在于文件夹中,但命名空间是相同的(与文件夹层次结构完全不匹配),是吗?

如果我是对的,任何想法如何说服我的同事?或者他们的解决方案有任何明显的缺点吗?

谢谢.

Jon*_*eet 8

这通常不是一个好主意,不是 - 特别是如果你需要使用相同代码中的两个类.它们是否应该在不同的命名空间中是一个单独的决定,但我肯定会调用它们HtmlResumeParser,ExcelResumeParser而不是试图使命名空间传递上下文.这将使您在阅读代码时更准确地确定您正在谈论的内容.