关于如何组织方法的最佳实践?

时间:2016-08-09 09:17:25

标签: java readability maintainability

是否有一个标准的做法或约定,在哪里声明仅在另一个方法中使用(或调用)的方法?为了证明这一点,假设如下:

public class MyClass{
    methodA();
    methodB();
    methodC();

    public void methodA(){
        methodA1();
        methodA2();
    }  
    public void methodB(){
        methodB1();
        methodB2();
    }
    private void methodA1(){
        do something;
    }
    private void methodA2(){
        do something;
    }
}

或者,是否有一种不同的编码方式可以提高上述的可读性?我已经阅读了其他类似主题的问题,但是他们没有解决我的问题,这个问题特别针对其他方法中使用的方法。您可以假设methodA,methodB和methodC对特定任务具有逻辑且有意义的序列。我的问题是其他方法(methodA1,methodA2,..)在这个任务中没有意义,它们只在它们被调用的方法中有意义。或者,我是否应该不关心在何处放置方法声明?

3 个答案:

答案 0 :(得分:1)

  

方法应该以这样的方式排序,以便它们读起来就像一个不会导致读者需要过多地跳过代码的故事

Robert C Martin(又名叔叔鲍勃)

这意味着(简而言之),您的methodA1,methodA2应该放在methodA之后(使用它们)。与methodB方法B1,方法B2相同。我希望看到类似的东西:

public class MyClass {
    methodA();
    methodB();
    methodC();

    public void methodA() {
        methodA1();
        methodA2();
    }

    private void methodA1() {
        do something;
    }
    private void methodA2() {
        do something;
    }

    public void methodB() {
        methodB1();
        methodB2();
    }

    public void methodB1() {
        do something;
    }

    public void methodB2() {
        do something;
    }
}

它还建议您将成员变量置于顶部(因此不会根据访问修饰符做出放置决策)。

您可能需要查看Bob叔叔的booksvideos,以便在编写干净代码方面获得一些非常好的建议。

答案 1 :(得分:0)

如果您只使用文本编辑器来阅读和更改代码,那么考虑一下您声明方法的顺序可能是有意义的,但通常您将使用像Eclipse这样的现代工具,它为您提供了方法的概述,并允许您遵循调用层次结构,因此它们所在的位置并不重要。

最好将精力集中在使代码尽可能独立和抽象,使用只做一件事的方法,以及具有非常明确功能的类,并且不惜一切代价避免使用它应该由另一个对象完成的工作。

哦,写下好评。这意味着解释为什么而不是你正在做什么

答案 2 :(得分:0)

如果只有一个函数调用一个方法,并且只调用一次,那么你只需使用一个函数。

如果它多次调用它,请将它放在“父”函数之前,中间没有任何换行符。如果可读性会受到影响(例如javadocs会被一千个无用的函数搞砸),可以考虑将它们全部隐藏在私有下面,使用util_ / internaluse _ / / zzz 前缀或者parentname_就像methodA_methodA1

如果它被多个函数调用,则更多的是实用函数。所以这样对待它。其中一些实用程序函数可能成为实用程序类。

另外,就个人而言,我使用的是C ++风格。所以成员,然后A1,A2,A,B1,B2,B。