关于oop:需要为命名类和方法提供灵感

Need inspiration for naming classes and methods

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicates:
Anyone else find naming classes and methods one of the most difficult part in programming?
What’s the best approach to naming classes?

找到合适的抽象名称有时会很费时,特别是如果你的母语不是英语。我想知道是否存在某种描述程序相关概念的在线词汇表/字典。我们都知道gof的设计模式,但我正在寻找一个更完整的词汇,包括概念之间的关系。

谢谢


你知道程序中有命名工件的约定吗?

例如,Java已经提出了一种非常强大和可靠的命名类、方法和属性的方法。

维基百科对命名约定(不是太有帮助,但仍然很有趣)有这样的说法:http://en.wikipedia.org/wiki/naming_convention_u(编程)

这里是中央华盛顿大学的一个页面(用Java,但对其他编程语言仍然有帮助):http://www. cuu.Edu/~ GeleNbE/javaSyth/NAMIGN.HTML

其他文章:http://drupal.star.bnl.gov/star/comp/sofi/soft-n-libs/standards/namingadvice

但基本上,命名方法通常从一个动作开始,然后是一个名词等。

例如:

1
2
3
4
5
6
7
8
$obj.addObservers(...);  // action, noun
$obj.setPrice();         // action, noun
$obj.getModelFromDb();   // action, noun, preposition, noun
$obj.setActive(...);     // action, noun
$obj.isActive();         // yes (true) or no (false) statement
$obj.canEdit();          // yes (true) or no (false) statement
$obj.setCanEdit();       // action, attribute
// etc.

避免使用否定的方法命名,例如:$obj.cannotConnect();,这只会让每个人感到困惑。(提示时也是这样,例如:"您将要删除此文件,是否要中止?"…选择"否"会认为你要删除一个文件,而这是一个错误,结果会适得其反……)

返回方法命名;

  • 方法名应尽可能短,但应避免使用缩写词,除非方法名太长(此处为判断调用);
  • 方法应该是自我解释和自我记录的;
  • 避免使用前缀,除非您使用的是非OOP语言(现在很少使用)。前缀应该是类或名称空间等。
  • 如果方法做了不止一件事,那么每个方法应该只有一个函数(一个目的),考虑将该方法拆分为多个函数,并在一个方法(如doActionBatch(),其中"actionbatch"是要执行的实际操作的名称;例如:doHttpConnect()
  • 等。

我可能建议您阅读社区编写的程序;它们通常在命名约定中采用最佳实践,您将更加熟悉"如何命名方法"。


最重要的是,要遵守你的命名规则。

我是.NET开发人员,所以我发现最好遵循.NET框架使用的设计准则。

http://msdn.microsoft.com/en-us/library/ms229042.aspx