2012-01-25 61 views
1

是否有很好的幫助/工具來幫助我將一個龐大的班級拆分成幾部分?代碼很好地工作,但有超過500行的課程並不舒服。我相信它可以分成更小的部分。工具幫助將一個巨大班級拆分爲兩個

這次我對python的一個工具很感興趣,但是我確信它不算數。

+0

您正在使用哪種編程語言/環境? – k3b

+0

我希望它存在。您可以在方法和字段之間繪製圖形(方法M使用字段F)。基於這個圖,算法可以建議。 – pihentagy

+0

我目前使用py3k,但我認爲該圖可以創建語言無關。 – pihentagy

回答

6

爲什麼你不能手動執行此操作? 500條線並沒有太多處理。我懷疑任何工具都可以在服務目的的背景下有意義地分割出一個班級。我建議你自己分割它,並在你處理代碼時重新設計/重構代碼。

+0

我對問題 – pihentagy

+0

添加了我的意見好吧,但我希望有一個工具可以幫助我解決問題。 – pihentagy

0

那麼,它就是你的意思。與Python等語言相比,您可以爲像java這樣的語言做更安全的自動重構(因爲python的動態特性)。

在Python這是正常的(「Python的」)使用內省更像「除非你有不使用它」使用getattr()而在Java。這樣的技術使自動重構工具幾乎不可能工作,因爲他們無法檢測到所有關係。

無論如何,對於java和python,我都使用Eclipse進行重構。它做得很好。對於python,您將需要pydev插件或aptana studio。

+0

是的,我同意你的觀點,重構在python中比在java中更困難,但我個人不會每天使用'getattr()',所以如果它錯過了這些連接,我很好。 – pihentagy

1

首先,500行代碼是什麼讓你「不舒服」?爲什麼你認爲你只需要將課堂分成兩個新班級?也許這個班級沒問題(500人不是很大),或者班級需要分成3或4個班級。

沒有更多的信息,我會說一個工具不會幫助你,直到你能理解爲什麼你覺得需要將它分成更小的塊。沒有工具會告訴你如何拆分類。

問問自己這個班級的單一責任是什麼。如果你想出一個以上的話,那麼這個班級至少應該按照責任劃分。如果你想出6個,你就有相當多的工作要做。

+0

是的,沒錯,沒有工具會告訴你如何拆分它,但是根據我對這個問題的評論,它可以給你真正的提示。 – pihentagy

+0

我不知道任何工具(學術界以外)會給你提示你需要的提示。即使這樣做,該工具也不會幫助您設計更好的類,因爲這需要知道自動化工具根本沒有(您會接近AI)。 所以,我鼓勵你停止尋找一個工具,並開始考慮和思考你的代碼的設計,以及每個班級應該承擔的責任。 –

相關問題