我必須處理一個項目,其他人已經複製並粘貼了相同的類大約12次,添加了一些定製,但主要是,類的結構非常相似,因爲它們是相互複製的。抽象多個C#類
我很想重構代碼,因爲我無法忍受看代碼庫。
是否有一種工具可以自動化這些頭痛的問題,即將相同的屬性和方法提取到父類中,並使其他類繼承它?
我必須處理一個項目,其他人已經複製並粘貼了相同的類大約12次,添加了一些定製,但主要是,類的結構非常相似,因爲它們是相互複製的。抽象多個C#類
我很想重構代碼,因爲我無法忍受看代碼庫。
是否有一種工具可以自動化這些頭痛的問題,即將相同的屬性和方法提取到父類中,並使其他類繼承它?
與arivman相似,請給出Resharper一槍。 30天免費試用,每人可獲得終身許可(意味着可以將其帶回家,如果他們允許的話,還可以接受其他工作)。
有一個[Extract Superclass](http://www.jetbrains.com/idea/webhelp/extract-superclass.html)功能,但所示的示例是Java。還是值得一看。 – MPelletier
我對ReSharper有相當多的經驗,並且會證明它是一個非常有用的工具,不僅可以執行偉大的重構,還可以提供靜態分析。 –
Resharper是一個令人難以置信的工具,但我不認爲它們提供了比較重構,可以選擇多個類並提取相交符號。他們的* Extract Superclass *僅基於一個類創建一個超類。 – arviman
我不知道任何免費的解決方案(除了自己做),但你可以從KnowDotNet給NET Refractor一槍。他們甚至有30天免費試用!
我還建議您在選擇Natural selection之前使用Clone Detective之類的工具,可能會出現更多隱藏的重複。
Resharper squigglies一定會給你一些關於代碼氣味和鍵盤組合的提示,然後在jiffy中修復。
你也可能使用here中的一些零碎,我個人發現分支和標記在這些情況下非常有效。在深入研究代碼之前,我認爲任何分析盡職調查都有很長的路要走。
這裏我們用simian找到重複的代碼。但是,您仍需要手動干預2刪除或更新它。
我就是那個工具一次...... –
把它想象成一個DIY項目 – Asdfg
如果是c#=你可以去'提取界面'選項,這有些幫助。 – 2011-10-05 00:16:16