在编码时你最终会有多少嵌套代码块?

Yaw*_*war 4 coding-style

我刚刚编写了一个函数,最终得到了嵌套代码块,如下所示:

class ... {
  void Method() {
    while (...) {
      ...
      switch (...) {
        while (...) {
          switch (...) {
            if (...) {
            }
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

您是否发现这是日常编码工作的标准,或者当您看到类似的内容时,您是否会快速尝试重新设计和分解代码?

Dav*_*itt 6

我会非常担心switch-within- switch构造.这应该"永远不会"发生.特别是在问题,如光这个("使用开关坏OOP的风格?").


Ste*_*ini 6

从不超过三个.作为我的个人哲学.但是,有些情况下你无法做得更好.典型的情况是:假设您必须迭代6索引矩阵的所有元素.不是典型的情况,但有时会发生.

所以,你可以重构出最里面的三个循环.好......你怎么称呼你重构的例程?

最后,您意识到高度嵌套的循环对于将来的理解是最好的.当然这是一个特例.如果你有高度嵌套的循环和开关,就像你粘贴的那样,那么你确实遇到了问题,你应该考虑为各个部分提供有意义的名称,隔离它们,以面向对象的方式处理交换机等等.

  • 我必须阅读,清理和修复这么多"写它并忘记它"代码,你不能相信=).如果你有几十个课程,那么你仍然有问题.没有看问题和代码就很难说,但拥有有效,简单的代码比其他任何东西都更具艺术性. (3认同)