我正在开发一个现有的C#项目,我发现其中一个核心类变得相当大(属性和方法明智)。
我添加的所有新属性都与课程直接相关(因此它们在其中是有意义的) - 但是我开始认为改进子课程并开始交换可能是明智的out使用父类但应该使用子类的实例。
所以我的问题是 - 课程在什么时候变得太强大"大" ?什么时候开始分支到儿童班等是明智的?我知道这最像是一个上下文的东西,但我也知道有这方面的资源(设计方法等),我无法找到我的生活。
另外 - 考虑到我采用了一个现有的项目,我想要做的事情之一是整理它,所以我的一个想法是让事情更加模块化并实践关注点分离等。
就像旁注一样 - 我不是在询问父/子等等之间的区别等等 - 而是更多地考虑一个类有多大(或者如果有的话)完全限制)以及何时开始分支。
有什么想法吗?
答案 0 :(得分:3)
如果您在Single Responsibility Principle上阅读,然后查看相关课程,您可能会发现该课程做了很多事情,可以分解成一些较小的课程。
关于你正在完成的任务的好书是Micheal Feathers Working Effectively With Legacy Code。
答案 1 :(得分:3)
通过实验,在我们公司内部,我们已经达到C#源文件的300行限制。使用StyleCop扩展名严格执行此操作(超过300行的文件是编译错误)。 这300线的限制完全是任意的:我们已经做出了更大更大的决定,但肯定不是“在什么时候课程变得太大”的“正确”答案?”你需要自己试验并达到自己的极限。