书上通常说,如果类变得太大而无法管理,请重新考虑实现,因为很可能设计需要更正,因为类没有被正确定义。
但是在类确实很大的情况下,例如当一个类被扩展以实现控件的功能时(例如 Canvas),并且有许多不同的事情,如 HitTest 、绘图、管理绘制的项目等。在这种情况下使用部分类来分离更大容器(例如自定义控件)的“不同”事物是否是一个好的解决方案?
其次,作为更通用和更广泛的解决方案,在转向Partial类之前应该考虑什么?
最佳答案
这是错觉。它只是将类分成两个物理文件。你仍然与 Single Responsibility Principle 发生冲突, 低 cohesion等
部分类主要用于自动代码生成工具。您可以编辑部分类,而不必担心在工具重新生成另一部分时它会被覆盖。
组合是避免大类的几种方法之一。 A 类有一个 B 类的实例,并将其部分功能委托(delegate)给它。在许多情况下dependency injection可用于解耦这两个类(类 A 传递了类 B 实现的接口(interface),通常在 A 的构造函数中)。
关于c# - 使用Partial Classes来管理代码,好的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9047420/