用C#(或任何其他语言)命名类

问题描述:

我经常遇到这种情况 - 有一个简单的普通类,比如文章。还有另一个类存储关于它们的所有文章和元信息。我通常将其命名为ArticlesManager。但我已经读过,这是一个糟糕的做法,在类名中包含Manager,Class等词。那么,我们应该如何调用它,如果Article类位于Models命名空间中,我们应该如何调用它的命名空间?用C#(或任何其他语言)命名类

+0

你从哪里读到的?这个名字并不像班上实际的名字那么重要。如果您有需要这样的一个名称的类那么或许表明在类本身的设计不良做法? – 2012-01-14 06:27:00

+0

如何'Magazine' =)或'ArticleRepository' – 2012-01-14 06:28:01

如何命名它(如你在你的问题中所做的那样)ArticleMeta?

+0

'ArticleMeta'完美的名字 – PresleyDias 2012-01-14 06:27:02

+0

它像手榴弹 - 随附的是描述现实十码范围内的最短名称或后缀是最好的。这让我想起谷歌的“三个字母的单词”,并挑出哪些可能适用于编码约定。 – 2012-01-14 08:31:04

称之为“经理”的一个很大的缺点是,课后往往承担过多的责任,并开始违反单一责任原则。

想一个类处理存储在一个数据库中的文章和命名类“ArticleStore”与命名它“ArticleManager”的类。当下一位程序员需要一个地方来完成文章翻译时,哪一个类更可能以不相关的代码结束呢?

这并不意味着叫什么“ArticleManager”是一个没有没有,如果它实际上是有意义为的阶级做什么名字,它只是意味着它是一个非常普通的名字,并试图缩小名班上实际做的是一个好习惯。

简而言之:如果ArticleManager比其他任何事物都能提供更好的描述性理解,只需将其称为ArticleManager即可。

它的长处:首先,您应该正确地设计您的解决方案。如果在此之后,你的班级最好被描述为“文章管理器”,那么通过golly,callit ArticleManager。不要停留在命名约定上。如果存在逻辑的(并且经过深思熟虑的)原因,那么惯例就是经验法则,意在适应(或忽略)。

我自己的例子:在.NET中你是“不应该让公众变量”,这是时是正确的99%。它是不正确的时间的1%,如果是使用属性已超过裸变量衡量的性能损失。