2016-05-24 45 views
1

我有一个习惯:如果一个类中的私有方法,不需要使用实例属性,那么我认为这个方法是辅助/工具方法,并将其声明为静态。当不依赖实例时,将一些私有方法声明为静态方法是个好主意吗?

这是一个好主意吗?在代码大小,执行性能方面还是在JVM的类缓存中做了一些改变?我被告知在C++中这可能是一个问题,那么在Java中呢?

样品:

public class MyClass 
{ 
    ..... 

    private int add(final int a, final int b) 
    { 
     return a + b; 
    } 
} 

成为:

public class MyClass 
{ 
    ..... 

    private static int add(final int a, final int b) 
    { 
     return a + b; 
    } 
} 
+0

这是一个不相关的细节。你可以确定性能与它无关,如果它确实如此,那么这将是无用的微型优化。 – Kayaman

+0

imho添加'static'是一种好的做法,因为它表达*设计决定,该方法不依赖于对象上下文。 – wero

+0

顺便说一句,这是关于为什么实用程序类不是面向对象设计中的最佳实践的不错文章 - [链接](http://www.yegor256.com/2014/05/05/oop-alternative-to-utility-classes的.html)。也许你会发现它有用 –

回答

0

这不是一个好主意还是一个坏主意。如果不是不存在的话(我敢打赌这两者中的后者),这种变化是微观的,所以你可能在浪费你的时间来仔细审视这样的细节。

这就是说,它也可以告诉你(程序员)你的哪些方法需要一个实例,哪些不需要。您也可以使用该评论虽然..

相关问题