在我的项目的核心库,我们有一个非常大的类,它正趋向于成为一个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