Java方法最佳设计实践

时间:2016-09-14 19:36:30

标签: java methods

我知道在Java中,每当要执行多次代码块时都会创建一个方法。

例如,下面的printPlusOne将被调用五次:

    class Count{

        public static void main(String[] args) {
            for(int i = 0; i < 5; i++){
                printPlusOne(i);
            }
        }

       public static void printPlusOne(int i){
            int sum  = i + 1;
            System.out.println(sum);
       }
    }

但是如果我只想执行一次相关代码块怎么办呢。我还应该为它创建一个方法吗?或者我应该在主方法中保留代码,如下所示。 一般来说,即使只调用一次方法,创建方法也是一种很好的设计实践吗?或者这些是不必要的,我可以在主方法中留下代码块吗?

     class Count{

         public static void main(String[] args) {

             //The below will print only once at the beginning of the program.
             //Should I create a method for it even if it runs only once?

             System.out.println("This is the introduction.");
             System.out.println("The program will return a count");
             System.out.println("Have fun.")
         }
     }

3 个答案:

答案 0 :(得分:3)

不仅有&#34;经验法则&#34;在这里指导你整个&#34; clean code movement&#34; (某种程度上基于优秀的绝对必读和#34;清洁代码&#34;罗伯特马丁;去获得免费的PDF 现在),其原则告诉我们:&#34;更多方法越好&#34;。

或者更确切地说:

  1. 有#34;单一责任&#34;原则 - 说任何&#34; thingy&#34;在编程(模块,类,方法)应该有一个单一的责任&#34;只要。因此,一种方法可以做到一件事&#34;,只有一件事。
  2. 有单层抽象&#34;原理;基本上告诉你,你的方法中只有一个 if或一个循环或一个 try-catch。
  3. 但是为了避免误解:我们的目标是创建最大的代码#34;可读。你不会创造很多方法,因为原则是这样说的。您可以创建完成工作所需的方法;不低于;但也不是更多!

    最后:&#34;许多简短方法的一个重要方面优于少数冗长方法&#34;是:这样的设置有助于你的大脑&#34;更快地掌握内容。关键是你的大脑总是试图找到背景,&#34;边界&#34;学习任何写下来的东西。这很简单:如果你编写具有明确,易于掌握的边界的代码;然后,当你稍后回来学习代码时,你正在帮助你的大脑。但如果你把太多东西变成一种方法,那么你的大脑就会开始“切片”#34;方法的内容分为较小的部分。换句话说:你通过强迫你的大脑“忽略”而浪费大脑CPU周期。事实上,在一个大方法中隐藏了许多小方法。

    并且为了记录:不要担心运行时效率。 JVM / JIT非常擅长优化小方法;越小越容易在运行时内联它们。

答案 1 :(得分:2)

我的经验法则:一种方法应该做一件事,做得好。如果今天只召唤一次,可能会在六个月后在其他地方召唤。不仅如此,正如@holtc所说,它使您更容易理解代码的作用。

答案 2 :(得分:1)

创建方法会使代码更具可读性/可维护性,但如果它只被调用一次,那么它取决于你,但我猜想从技术上讲,最好创建一个方法来制作更容易更改/更新前进