Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
纯虚拟c++;编码 我是从java后台来的,今天和我们的C++开发人员进行了一次对话,将现有代码转换成纯虚拟方法(接口),并将它们作为代码的依赖注入,以更好地解耦。_C++_Inversion Of Control_Pure Virtual - Fatal编程技术网

纯虚拟c++;编码 我是从java后台来的,今天和我们的C++开发人员进行了一次对话,将现有代码转换成纯虚拟方法(接口),并将它们作为代码的依赖注入,以更好地解耦。

纯虚拟c++;编码 我是从java后台来的,今天和我们的C++开发人员进行了一次对话,将现有代码转换成纯虚拟方法(接口),并将它们作为代码的依赖注入,以更好地解耦。,c++,inversion-of-control,pure-virtual,C++,Inversion Of Control,Pure Virtual,他试图说服我,只有当代码中有“逻辑”时,我们才应该使用它们,如果代码只是从PC机收集信息,那么就没有必要了 长话短说,我正在寻找重构代码并使用IoC和纯虚拟方法,而不是让耦合代码保持原样的好理由 有很多原因可以解释为什么您应该或不应该重构现有代码。每种情况都是独特的。如果你谈论的是一个具有大型代码库的项目,你想重构它的核心,它比99%的情况下运行良好,并且经过适当测试,我建议你不要这样做。您可以在测试代码中添加更多bug,而无需进行真正需要的改进。 若代码只是在收集一些信息,那个么您可以为使用该

他试图说服我,只有当代码中有“逻辑”时,我们才应该使用它们,如果代码只是从PC机收集信息,那么就没有必要了


长话短说,我正在寻找重构代码并使用IoC和纯虚拟方法,而不是让耦合代码保持原样的好理由

有很多原因可以解释为什么您应该或不应该重构现有代码。每种情况都是独特的。如果你谈论的是一个具有大型代码库的项目,你想重构它的核心,它比99%的情况下运行良好,并且经过适当测试,我建议你不要这样做。您可以在测试代码中添加更多bug,而无需进行真正需要的改进。 若代码只是在收集一些信息,那个么您可以为使用该对象的测试类提取接口。如果您出于某些原因不使用单元测试,请保持原样。 总的来说,您的opont可能是对的,在您真正需要接口的时候制作接口,并编写干净的代码,方便地提取依赖项

为什么使用纯虚拟方法

我尝试编写基类函数,为所有接口方法提供默认行为。我感到惊讶的是,这些默认值常常只是生成一些错误处理(使用本地接受的机制)

例如,我编写的代码接收设置led状态的命令。在开发过程中,“其他软件”有时会(错误地)请求需求明确允许的颜色。(“红色”在状态led 5上不允许)我的默认功能生成了相应的错误消息,并识别了发送错误请求的“其他软件”


还有一些情况在某种程度上没有适当的违约行为。对于这些情况,我创建纯虚拟方法。将方法声明为纯虚拟是记录基类不会提供功能的想法,因此要求所有派生类必须提供一些代码来支持此概念


“纯虚函数或纯虚方法是由非抽象派生类实现的必需的虚函数”-Wikipedia

为什么要重构代码


可读性

@decltype_auto-comon。。你花了时间阅读,似乎想帮忙,这就是你的答案?这个问题更适合堆栈交换程序。你的问题有点不连贯;这可能是第二语言问题?尽管如此,这还是让人难以理解。就其意义而言,它没有提供产生客观答案所需的信息。就其提供回答所需的信息而言,它不适用于本网站,因为本网站目前不是一个通用的“为那些更好的程序员回答的人发布问题”网站。最后,“马里兰天气如何”是指国家安全局所在地;他们安装了“从PC收集信息”的软件。@Eugene这个问题不适合程序员——很快就会被否决并关闭,请参阅推荐阅读: