将一个方法中的代码段与大括号分开是不好的做法?

Mar*_*kus 4 java coding-style code-organization

我倾向于将多行代码填充到某个任务中,并在顶部添加一个小注释,如下所示:

public void doSomething(){
    // common variables needed by all blocks

    { // comment for block 1
        ...
        ... about 5 to 30 lines of code
        ...
    }

    { // comment for block 2
        ...
        ... about 5 to 30 lines of code
        ...
    }

}
Run Code Online (Sandbox Code Playgroud)

我这样做是因为在我看来,它易于阅读,一个块所需的变量将无法在另一个块中造成伤害,并且因为我不想为其他地方不需要的块制作单独的方法.

你会说这是不好的做法吗?我编写的很多人不同意这种编码风格.我知道c#中有区域,但它们不会隔离变量.

编辑:因为每个人都建议我从块中创建方法:有时候我会这样做但我不想如果类已经有20多个方法,那么任何其他方法都不需要块,并且所有块的方法都是还小.

Jon*_*eet 14

如果你可以像这样打破代码,为什么不把它分解成单独的方法呢?然后将您的doSomething()方法更改为调用那些较小的方法?

那样:

  • 很清楚这项工作的每个要素是什么意思
  • 阅读顶级方法,很容易看到整体计划并深入到一个特定部分
  • 您可以单独对每个小方法进行单元测试(尽管这可能需要将其设置为非私有的,仅用于测试;是否可以将其作为个人偏好,与其他任何内容一样)

  • @Markus:在一个类中有一堆有针对性的私有帮助器方法不是问题.拥有难以理解和调试的大量方法,因为它们过长是一个问题. (3认同)
  • @Markus:如果它已经有20多种方法,那么这个类本身可能太大了,责任太多了?如果*不是*太大,那么我没有看到"已经有很多方法"是一个很好的借口,不能让这个方法更具可读性. (2认同)