2013-03-27 27 views
1

我有遺留代碼,我正在重構。 它目前的立場是,有一個超級班,我會稱它爲SuperParent。現在任何需要爲SuperParent添加一些功能的人 - 擴展SuperParent爲特定功能創建一個接口,然後創建一個擴展SuperParent並實現此接口的類subParent。 這繼續下去,它創建了一個大部分的類,基本上從這個SuperParent擴展。打破繼承層次的最佳方式

我不知道重構這個的正確方法是什麼?它應該只是組成? 我重構這個的主要目標是讓代碼更清潔 - 因爲SuperParent有很多擴展 - 很難看到要擴展哪個類。這變得難以管理。

+0

重構的動機是什麼?你想達到什麼目的? – NPE 2013-03-27 15:58:19

+0

爲什麼你特別重構這個?你需要做什麼? – 2013-03-27 15:58:22

+0

@BrianAgnew:LOL :)相隔四秒鐘。 – NPE 2013-03-27 15:58:44

回答

0

模板 - >戰略重構:

集團方法,通過在他們需要的超類中的字段。將字段和方法重構爲傳遞給超類的策略類。在方法被覆蓋的地方傳遞策略類的替代實現。