c# - 使用Partial Classes来管理代码,好的解决方案?

标签 c# coding-style refactoring partial-classes code-cleanup

书上通常说,如果类变得太大而无法管理,请重新考虑实现,因为很可能设计需要更正,因为类没有被正确定义。

但是在类确实很大的情况下,例如当一个类被扩展以实现控件的功能时(例如 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/

相关文章:

javascript - 将 "this"保留在变量中并将所有 "this"替换为该变量?

Java:setter 应该生成 `Clone` 还是由调用者传递 `new` 副本?

在 lisp 中重构 "show-list"函数

c# - 在 c# .Net Windows 应用程序中恢复 Microsoft Access 数据库

c# - 如何在 response.redirect 之前执行启动脚本?

silverlight - 在 XAML 中创建投影样式

refactoring - 系统地从 J 表达式中提取名词参数

java - Java 中的长方法链和重构技术

c# - 将 .NET Core 控制台应用程序部署到 Azure WebJobs 时加载 hostpolicy.dll 时出错

c# - 您如何找到哪个 .NET 项目引用正在传递加载另一个程序集?