需要灵感来命名类和方法

时间:2010-07-01 19:50:57

标签: oop coding-style naming-conventions

  

可能重复:
  Anyone else find naming classes and methods one of the most difficult part in programming?
  What’s the best approach to naming classes?

找到合适的抽象名称有时可能非常耗时,尤其是如果您的母语不是英语。我想知道是否存在某种描述程序相关概念的在线词汇表/词典。我们都知道GoF的设计模式,但我正在寻找一个更完整的词典,包括概念之间的关系。

由于

2 个答案:

答案 0 :(得分:1)

您知道在程序中命名工件的约定吗?

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

维基百科有关于命名约定的说法(不太有帮助,但仍然很有趣)http://en.wikipedia.org/wiki/Naming_convention_(programming)

这是中央华盛顿大学的一个页面(使用Java,但对其他编程语言仍有帮助):http://www.cwu.edu/~gellenbe/javastyle/naming.html

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

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

例如:

$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()

我建议的一个提示是阅读社区编写的程序;他们通常采用命名约定的最佳实践,您将更熟悉“如何命名方法”

答案 1 :(得分:0)

最重要的是,与您的命名约定保持一致。

我是.NET开发人员,所以我发现最好遵循.NET Framework使用的设计指南。

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