什么时候开始制作 derived/children 类

When to start making derived/children classes

我正在开发一个 现有的 C# 项目,我发现其中一个 核心 classes 变得相当大(属性 和方法明智)。

我添加的所有新属性几乎都与 class 直接相关(因此它们在其中是有意义的)——但是我开始认为将 children classes 并开始换出使用 parent class 但应该使用 child class 的实例。

所以我的问题是 - 什么时候 class 会变成 "big"?什么时候开始分支到 child classes 等是明智的?我知道这最像是一个上下文相关的东西,但我也知道有这方面的资源(设计方法等)我一辈子都找不到。

此外 - 考虑到我采用了一个现有项目,我想做的一件事就是整理它,所以我的一个想法是使事情更加模块化并实践关注点分离等。

作为旁注——我不是在问 parent/child classes 等等之间的区别——而是更多的是沿着有多大的方向class 可以(或者如果有任何限制的话)以及何时开始分支

有什么想法吗?

如果您阅读 Single Responsibility Principle,然后查看有问题的 class,您可能会发现 class 正在做很多事情,并且可以被分解成一些更小的 classes.

Micheal Feathers 的 Working Effectively With Legacy Code 关于您正在执行的任务的一本好书。

通过实验,在我们公司内部,我们已达到 C# 源文件 300 行的限制。这是通过 StyleCop 扩展严格执行的(超过 300 行的文件是编译错误)。 这个 300 行的限制是完全任意的: 我们已经决定任何更大的东西都太大了,但这肯定不是 "correct" 对 "at what point does a class become too big?" 的回答您需要自己进行实验并达到自己的极限。