纯虚拟c++;编码 我是从java后台来的,今天和我们的C++开发人员进行了一次对话,将现有代码转换成纯虚拟方法(接口),并将它们作为代码的依赖注入,以更好地解耦。
他试图说服我,只有当代码中有“逻辑”时,我们才应该使用它们,如果代码只是从PC机收集信息,那么就没有必要了纯虚拟c++;编码 我是从java后台来的,今天和我们的C++开发人员进行了一次对话,将现有代码转换成纯虚拟方法(接口),并将它们作为代码的依赖注入,以更好地解耦。,c++,inversion-of-control,pure-virtual,C++,Inversion Of Control,Pure Virtual,他试图说服我,只有当代码中有“逻辑”时,我们才应该使用它们,如果代码只是从PC机收集信息,那么就没有必要了 长话短说,我正在寻找重构代码并使用IoC和纯虚拟方法,而不是让耦合代码保持原样的好理由 有很多原因可以解释为什么您应该或不应该重构现有代码。每种情况都是独特的。如果你谈论的是一个具有大型代码库的项目,你想重构它的核心,它比99%的情况下运行良好,并且经过适当测试,我建议你不要这样做。您可以在测试代码中添加更多bug,而无需进行真正需要的改进。 若代码只是在收集一些信息,那个么您可以为使用该
长话短说,我正在寻找重构代码并使用IoC和纯虚拟方法,而不是让耦合代码保持原样的好理由 有很多原因可以解释为什么您应该或不应该重构现有代码。每种情况都是独特的。如果你谈论的是一个具有大型代码库的项目,你想重构它的核心,它比99%的情况下运行良好,并且经过适当测试,我建议你不要这样做。您可以在测试代码中添加更多bug,而无需进行真正需要的改进。 若代码只是在收集一些信息,那个么您可以为使用该对象的测试类提取接口。如果您出于某些原因不使用单元测试,请保持原样。 总的来说,您的opont可能是对的,在您真正需要接口的时候制作接口,并编写干净的代码,方便地提取依赖项 为什么使用纯虚拟方法 我尝试编写基类函数,为所有接口方法提供默认行为。我感到惊讶的是,这些默认值常常只是生成一些错误处理(使用本地接受的机制) 例如,我编写的代码接收设置led状态的命令。在开发过程中,“其他软件”有时会(错误地)请求需求明确允许的颜色。(“红色”在状态led 5上不允许)我的默认功能生成了相应的错误消息,并识别了发送错误请求的“其他软件”
还有一些情况在某种程度上没有适当的违约行为。对于这些情况,我创建纯虚拟方法。将方法声明为纯虚拟是记录基类不会提供功能的想法,因此要求所有派生类必须提供一些代码来支持此概念
“纯虚函数或纯虚方法是由非抽象派生类实现的必需的虚函数”-Wikipedia 为什么要重构代码
可读性 @decltype_auto-comon。。你花了时间阅读,似乎想帮忙,这就是你的答案?这个问题更适合堆栈交换程序。你的问题有点不连贯;这可能是第二语言问题?尽管如此,这还是让人难以理解。就其意义而言,它没有提供产生客观答案所需的信息。就其提供回答所需的信息而言,它不适用于本网站,因为本网站目前不是一个通用的“为那些更好的程序员回答的人发布问题”网站。最后,“马里兰天气如何”是指国家安全局所在地;他们安装了“从PC收集信息”的软件。@Eugene这个问题不适合程序员——很快就会被否决并关闭,请参阅推荐阅读: