Spe*_*ine 1 c# refactoring coding-style partial-classes code-cleanup
书籍通常会说,如果课程太大而无法管理,请重新考虑实施,因为设计需要更正,因为课程尚未正确定义.
但是在类确实很大的情况下,例如当一个类被扩展以实现控件的功能时(例如Canvas),并且有许多不同的东西,如命中测试,绘图,管理绘制的项目等.在这种情况下使用部分类来分离更大容器(例如自定义控件)的"不同"事物是一个很好的解决方案吗?
其次,作为一个更普遍和更广泛的解决方案,在转向部分类之前应该考虑什么?
是的,如果类本来就很大,使用分部类可以帮助您管理源代码。我之前已经使用过它来将单个生产文件的测试拆分为多个源测试文件。同样,在重新实现 LINQ to Objects 时,我使用部分类将每个 LINQ“运算符”放入其自己的文件中 - 尽管它们都贡献于一个名为Enumerable.
不过,部分类并不是良好设计的良好替代方案 - 当您可以使实际类更小时,就值得这样做。如果你发现你有一个想要分解的类,部分类可以帮助你将大类重构为两个较小的类 - 你可以将类分成两个部分而不改变功能,然后执行真正的分裂是更小的一步。