4

我不太确定我应该如何处理一组分组的类。

我的情况:我有 11 个仅与 class 相关的类Character.cs,但所有这些类(包括Character.csand CharacterManager.cs)都在 namespace 内Models.Characters

哪个是命名类的更“正确”或首选方式:

(例子):

CharacterDetails.cs CharacterSprites CharacterAppearance CharacterClientRights CharacterServerRights

或者:

Details.cs Sprites Appearance ClientRights ServerRights

(他们都在Models.Characters(例如Models.Characters.CharacterDetails,,Models.Characters.Appearance)中被注意到

提前致谢。

4

7 回答 7

6

就我个人而言,它“取决于”。通常我会在所有内容前面加上单词Character以保持一致,但是如果您已经在Character名称空间下拥有所有内容,则字符前缀可能看起来是多余的。

我可以很容易地看到Models.Character.[X]是否永远不会有另一个名为 的类的较短约定Details,例如,如果可能存在,并且在从现在开始数周或数月回顾代码时可能会感到困惑,我个人更喜欢这个UserDetails选项。DetailsUserDetailsCharacterDetails

最后,这是您的个人喜好,更准确地描述您的域,Details还是CharacterDetails

于 2009-11-19T02:41:28.417 回答
5

就我个人而言,我会坚持第二种方法,因为这就是命名空间的用途:对相关的类集进行分组。第一种方法只是使类名更长,而好处可以忽略不计。

于 2009-11-19T02:05:47.123 回答
2

这真的是个人喜好。

我赞成

CharacterDetails
CharacterSprites 
CharacterAppearance 
CharacterClientRights 
CharacterServerRights

因为它更具可读性。

你通常会有一个 using 语句

Models.Characters.Appearance

除非你打算做完整的符号。

我喜欢任何可以增加可读性的东西。这可能对您正在与之合作的项目和团队很重要。如果只有你,那就做你最喜欢的事情,并帮助你在未来维护代码。

于 2009-11-19T02:05:59.540 回答
2

您的命名空间已经将它的类分组在Characters伞下,所以我不会用名字来命名您的类Character

于 2009-11-19T02:07:01.940 回答
2

这里可能没有正确或错误的答案。我发现自己更喜欢你的第一种风格,但我也使用了第二种风格。我认为在这种特定情况下,如果我是您的 API 的调用者,我会发现使用第一种样式的代码更容易阅读。

于 2009-11-19T02:21:40.123 回答
2

只要您选择一个并在整个代码中始终如一地使用它,那么您选择的任何一个都是正确的。

我个人的选择是你的第二个选择。如果您的命名空间是字符,我认为没有理由在类名中使用前缀字符。

于 2009-11-19T05:05:04.973 回答
1

考虑命名类可能会产生歧义。例如,如果我有一个名为“Thread”的类表示“CharacterThread”(假设的),并且如果其他一些类使用两个命名空间

模型.字符系统.诊断

每次使用它时,我都必须完全限定线程名称......有时这可能会很痛苦

于 2009-11-19T02:41:35.960 回答