在我的項目的核心庫,我們有一個非常大的類,它正趨向於成爲一個God object。其中一個原因是,一段時間以來,應該在不同模塊中應用的任務已經投入到這個課程中。對於前 -轉換的公共方法擴展方法
class HugeClass{
public void DoModuleXJob(){}
public void DoModuleYJob(){}
}
一個在重構的問題和移動沒人要,模塊特定的行爲進行此類的是,這將是一個很多關於模塊的X和Y模塊的工作來改變他們的代碼。 作爲一項工作,我正在考慮將這些方法轉換爲擴展方法,然後將它們移動到其相關模塊。對於前 -
// in module X
static class HugeClassExtensions{
public static void DoModuleXJob(this HugeClass instance){}
}
// in module Y
static class HugeClassExtensions{
public static void DoModuleYJob(this HugeClass instance){}
}
我發現,Y模塊爲不使用DoModuleXJob,反之亦然,這我知道這不會產生任何編譯問題,只要。
這是一個很好的解決方案,並有在這樣的情況下,任何更好的方法?
是的,但這會打破我想避免的模塊的編譯。 – 2010-10-14 18:33:09