我不太确定我应该对一组分组的类做些什么。
我的情况:我有11个课程只与课程Character.cs
有关,但所有这些课程(包括Character.cs
和CharacterManager.cs
)都在命名空间Models.Characters
内。
这是命名类的更“正确”或首选方式:
(例子):
CharacterDetails.cs
CharacterSprites
CharacterAppearance
CharacterClientRights
CharacterServerRights
或:
Details.cs
Sprites
Appearance
ClientRights
ServerRights
(他们都在Models.Characters
注意到了(例如。Models.Characters.CharacterDetails
,Models.Characters.Appearance
)
提前致谢。
答案 0 :(得分:6)
就我个人而言,我坚持使用第二种方法,因为这就是命名空间的用途:对相关的类集进行分组。第一种方法是让类名更长,而且好处可以忽略不计。
答案 1 :(得分:6)
就个人而言,它“取决于”。通常我会在所有内容前加上单词Character
以保持一致性,但是如果你已经在Character
名称空间下的所有内容,那么字符前缀似乎是多余的。
我很容易看到使用Models.Character.[X]
的较短约定,如果永远不会有另一个名为Details
的类,如果例如UserDetails
然后Details
并且从现在起几周或几个月回顾代码时,UserDetails
会让人感到困惑,我个人更喜欢CharacterDetails
选项。
最后,这是您的个人偏好,更准确地描述您的域名Details
还是CharacterDetails
?
答案 2 :(得分:2)
这真的是个人喜好。
我赞成
CharacterDetails
CharacterSprites
CharacterAppearance
CharacterClientRights
CharacterServerRights
因为它更具可读性。
您通常会使用
的使用声明Models.Characters.Appearance
除非你打算做完整的记法。
我赞成任何可以增加可读性的东西。它可能对项目和您正在使用的团队很重要。如果只是你而不是做你最喜欢的事情,那将来会帮助你维护代码。
答案 3 :(得分:2)
您的命名空间已经在Characters
保护伞下对其类进行分组,因此我不会使用Character
名字命名您的类。
答案 4 :(得分:2)
这里可能没有正确或错误的答案。我发现自己更喜欢你的第一种风格,但我也使用了第二种风格。我认为在这种特定情况下如果我是你的API的调用者,我会发现阅读使用第一种风格的代码更容易。
答案 5 :(得分:2)
只要您选择一个并且在您的代码中一直使用它,那么您选择的是正确的代码。
我个人的选择是你的第二选择。如果您的命名空间是字符,我认为没有理由在类名中使用前缀字符。
答案 6 :(得分:1)
考虑可能由命名类创建的歧义。例如,如果我有一个名为“Thread”的类表示“CharacterThread”(假设),并且如果某个其他类使用两个名称空间
Models.Characters System.Diagnostics程序
我每次使用它时都必须完全限定线程名称......有时可能很痛苦