我需要完成其他开发人员的工作,但问题是他以不同的方式开始...
因此,现在我发现有一种情况是使用现有代码,他选择继承已经实现了一系列接口的非抽象类(非常大的类,没有任何虚函数)或取消该代码(这不应该做太多工作) ),并编写另一个实现我需要的接口的类。
有哪些利弊可以帮助我选择更好的方法。
ps。请注意,我没有太多经验
非常感谢
最佳答案
再说一次从头开始写是很诱人的,但是不要这样做!现有的代码可能很难看,但看起来确实可行。由于班级规模很大,因此我认为背后也有很多历史。它可能为您可能到目前为止还没有想到的一些非常模糊的情况提供解决方案。我的建议是,如果可能的话,请先与开发该类的人交谈,了解其工作原理,然后从中继承(当然,将其析构函数虚拟化之后)并完成您的工作。然后,在时间允许的情况下,将类的各个部分缓慢地重构为更易于管理的较小类。另外,不要忘了在开始之前编写好的单元测试人员,以便可以针对现有类的行为来验证新行为。还有一件事,从非抽象基类继承是没有错的,只要它有意义并且基类析构函数是虚拟的即可。