2016-05-08 42 views
0

該類有構造函數和變量以及不應該被修改的方法。在課堂內部也是一個非常大的方法,我將一個項目傳遞過來,這個方法將被修改,並且被其他人分享。
有沒有辦法隔離將被修改成自己的文件的代碼,以及人們最喜歡的方式是什麼?另一個類,一個接口,或只是保持在同一個文件?正確的方法來隔離將來要修改的代碼?

+3

一個非常大的方法通常是一個不好的代碼的氣味,但沒有看到代碼,或知道它做了什麼,我們無法真正提出任何有用的建議。 –

+0

用'/ * /'註釋掉? –

+0

只需定義一個將由客戶端實現的接口,通過該接口調用該方法。 –

回答

-1

以下是我的看法。

事情你應該和不應該做的事:

  • 你有一個非常大的方法。所以我認爲它不止一件事。我想你應該把這個:

-

//Do thing 1 
xxx1(); 
xxx2(); 
xxx3(); 

//Do thing 2 
yyy1(); 
yyy2(); 
yyy3(); 

//Do thing 3 
zzz1(); 
zzz2(); 
zzz3{}; 

到這一點:

doThing1(); 
doThing2(); 
doThing3(); 

,並聲明這些方法:

private void doThing1() { 
    xxx1(); 
    xxx2(); 
    xxx3(); 
} 

private void doThing2() { 
    yyy1(); 
    yyy2(); 
    yyy3(); 
} 

private void doThing3() { 
    zzz1(); 
    zzz2(); 
    zzz3(); 
} 

你基本上只是砍了方法分成幾部分,以便更易於管理。

  • 如果您的編輯器允許這樣做,您應該添加註釋,以便編輯器添加按鈕以允許您摺疊該代碼區域。當你在處理其他事情時,這可以保持無關的東西。

  • 如果你的編輯器不允許,你應該添加註釋,告訴這個人:

-

// MARK - things related to <insert name of large method here> 
private void doThing1() { 
    xxx1(); 
    xxx2(); 
    xxx3(); 
} 

private void doThing2() { 
    yyy1(); 
    yyy2(); 
    yyy3(); 
} 

private void doThing3() { 
    zzz1(); 
    zzz2(); 
    zzz3(); 
} 
// MARK - other stuff 
<insert other stuff here> 
  • 您還可以添加在提取方法一個更加可維護性的內部類。

  • 如果提取方法生長大,記得將它們分解成碎片以及

  • 你不應該把這個代碼在另一個文件中,如果它是密切相關的類。

  • 如果大方法有幾件事情做的類,考慮將其移動到一個單獨的類

相關問題