0
該類有構造函數和變量以及不應該被修改的方法。在課堂內部也是一個非常大的方法,我將一個項目傳遞過來,這個方法將被修改,並且被其他人分享。
有沒有辦法隔離將被修改成自己的文件的代碼,以及人們最喜歡的方式是什麼?另一個類,一個接口,或只是保持在同一個文件?正確的方法來隔離將來要修改的代碼?
該類有構造函數和變量以及不應該被修改的方法。在課堂內部也是一個非常大的方法,我將一個項目傳遞過來,這個方法將被修改,並且被其他人分享。
有沒有辦法隔離將被修改成自己的文件的代碼,以及人們最喜歡的方式是什麼?另一個類,一個接口,或只是保持在同一個文件?正確的方法來隔離將來要修改的代碼?
以下是我的看法。
事情你應該和不應該做的事:
-
//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>
您還可以添加在提取方法一個更加可維護性的內部類。
如果提取方法生長大,記得將它們分解成碎片以及
你不應該把這個代碼在另一個文件中,如果它是密切相關的類。
如果大方法有幾件事情做的類,考慮將其移動到一個單獨的類
一個非常大的方法通常是一個不好的代碼的氣味,但沒有看到代碼,或知道它做了什麼,我們無法真正提出任何有用的建議。 –
用'/ * /'註釋掉? –
只需定義一個將由客戶端實現的接口,通過該接口調用該方法。 –