是否可以通过Eclipse中的调用重新排序方法?

时间:2016-06-15 10:01:53

标签: java eclipse

In" Clean Code"罗伯特·C·马丁(Robert C. Martin)的书有很好的提示,可以根据他们的调用对方法进行排序,如下所示:

void e() {
    a();
    b();
    c();
}

void a() { /*implementation*/ }

void b() {
    d();
}

void d() { /*implementation*/ }

void c() { /*implementation*/ }

这有很大的优势:

  • "一个类应该像报纸一样可读(...)" :你可以自上而下阅读课程而无需接近你的方法 不知道在哪里使用
  • "(..)从最重要的方法开始" :高级方法位于顶部,所以你 在你理解它的作用的地方停止阅读课程 不需要深入细节

是否有任何插件或其他方式自动排序?因为一旦我写了更大的课程,手动重新排序会花费很多时间,而不是说代码更新。

1 个答案:

答案 0 :(得分:0)

就我个人而言,我不建议这样做。

为什么呢?假设您的代码看起来像您问题中的那个。

void e() {
    a();
    b();
    c();
}

void a() { /*implementation*/ }

void b() {
    d();
}

void d() { /*implementation*/ }

void c() { /*implementation*/ }

现在进行了少量代码更改,a()也调用d()。然后按照您的示例,代码现在看起来像

void e() {
    a();
    b();
    c();
}

void a() {
    d();
}

void d() { /*implementation*/ }

void b() {
    d();
}

void c() { /*implementation*/ }

这会导致您的代码审核人员必须检查以下更改。

@@ -4,12 +4,14 @@ void e() {
     c();
 }

-void a() { /*implementation*/ }
-
-void b() {
+void a() {
     d();
 }

 void d() { /*implementation*/ }

-void c() { /*implementation*/ }
+void b() {
+    d();
+}
+
+void c() { /*implementation*/ }    

所以他必须检查其他更改,实际上没有代码更改。

相关问题