如何根据类的名称空间正确命名类?

发布于 2024-07-15 00:40:39 字数 182 浏览 4 评论 0原文

人们经常可以看到类名携带对其所属命名空间的引用。 最流行的示例之一是 .NET“Xml”命名空间,其中定义的每个类都以“Xml”标记为前缀。

这对我来说一直显得相当多余,但最近我意识到在某些情况下它可能很有用......但仍然是多余的。

我想知道人们实际上是如何处理这个问题的。

谢谢。

One can often see class names carrying a reference to the namespace to which they belong. One of the most popular examples is the .NET 'Xml' namespace where every single class defined in it is prefixed with the 'Xml' tag.

This has always seemed pretty redundant to me, but recently I've realized that in some cases it could be useful... but still redundant.

I'd like to know how people actually deal with this issue.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

冰葑 2024-07-22 00:40:39

我采取的是“在适当的时候”的方法。 这个想法是您希望使用最有意义的名称来命名您的类。 在某些情况下,这确实意味着类名与命名空间有些多余,但请记住,命名空间通常不会被视为代码中类名的一部分,而是作为 using 指令的一部分。

命名空间用于将相关的类等逻辑分组在一起,以帮助开发人员找到正确的类并帮助最大限度地减少名称冲突的机会。

I take the "when it is appropriate" approach. The idea is that you want to name your classes using the name that makes the most sense. In some cases it does mean that the class name is somewhat redundant with the namespace, but keep in mind that the namespaces aren't generally seen as part of the class name in the code other than as part of a using directive.

The namespaces are used to logically group related classes, etc. together to help the developer find the correct classes and help minimize the chance of name collisions.

陌路终见情 2024-07-22 00:40:39

我倾向于遵循 Microsoft 关于命名问题的指南


回复:斯科特的评论。

我认为 MS 在这个问题上非常清楚,这类似于你对 OP 的回复。 例如:

不要引入泛型类型名称
例如元素、节点、日志等
信息。 有一个很高的
它导致类型名称的概率
常见场景中的冲突。 你
应该限定通用类型名称
(FormElement、XmlNode 事件日志、
肥皂消息)。

在OP的问题中,引用了Xml命名空间。 如果您查看其中这些类的名称,您会发现它们是非常常见的名称,没有前缀“Xml” - 属性、字典、文档等。

无论如何,就像我说的,我尝试遵循他们的建议。

I tend to defer to Microsoft's guidance on issues of naming.


Re: Scott's comment.

I think MS is pretty clear on the issue and it is akin to your reply to the OP. For instance:

Do not introduce generic type names
such as Element, Node, Log, and
Message. There is a very high
probability it would lead to type name
conflicts in common scenarios. You
should qualify the generic type names
(FormElement, XmlNode EventLog,
SoapMessage).

In the OP's question, the reference was made to the Xml namespace. If you look at the names of those classes in there, they are pretty common names w/out the "Xml" prepended onto them - Attribute, Dictionary, Document, etc.

Anyhow, like I said, I try to follow what they suggest.

糖果控 2024-07-22 00:40:39

我喜欢 System.Xml 类具有 Xml 前缀。 它帮助我将它们与一般的对应物区分开来。 什么是文档与 XmlDocument? 有了前缀就变得更清楚了。 无论如何,我认为。

在我自己的课堂上,我努力遵循这种精神。 如果我采用一个通用的单词并将其包装在我的类中,我可能会选择使用名称空间作为前缀。 例如:

MyProject.Client.Application 将与 Application 发生冲突,后者是一个 .NET 类。

MyProject.Client.ClientApplication 将避免冲突问题,同时仍然清楚该类的作用(至少就我的项目而言)。

I like that the System.Xml classes have the Xml prefix. It helps me distinguish them from a generic counterpart. What's a Document versus XmlDocument? It becomes clearer with the prefix. In my opinion, anyway.

In my own classes, I try to follow this spirit. If I'm taking a somewhat generic word and wrapping it in my class, I may choose to use the namespace as a prefix. For example:

MyProject.Client.Application will collide with Application, which is a .NET class.

MyProject.Client.ClientApplication will avoid collision problems while still remaining clear as to what the class does (at least, in terms of my project).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文