如果私有助手可以是静态方法,则应该是静态的

问题:

假设我有一个类被设计为实例化。我在类中有几个私有的“helper”方法,不需要访问任何类成员,并且仅仅根据参数操作,返回结果。

public class Example {
   private Something member;

   public double compute() {
       double total = 0;
       total += computeOne(member);
       total += computeMore(member);
       return total;         
   }

   private double computeOne(Something arg) { ... }
   private double computeMore(Something arg) {... } 
} 

有没有什么特别的理由指定computeOnecomputeMore作为静态方法 – 还是有什么特别的原因?
将它们当作非静态来确定是最简单的,尽管它们当然可以是静态的,而不会引起任何问题。

回答:

我喜欢这样的帮助方法是private static;这将使读者清楚他们不会修改对象的状态。我的IDE还将以斜体显​​示静态方法的调用,所以我将知道该方法是静态的,而不查看签名。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Should private helper methods be static if they can be static

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 18 = 24