c++ - 纯虚拟 C++ 编码的优点和缺点

标签 c++ inversion-of-control pure-virtual

<分区>

我来自 Java 背景,今天与我们的一位 C++ 开发人员就将现有代码转换为具有纯虚拟方法(接口(interface))并将它们用作整个代码的依赖注入(inject)以更好地解耦进行了对话.

他试图说服我,我们应该只在代码中存在“逻辑”时才使用它们,如果代码只是从 PC 收集信息,则没有必要。

长话短说,我正在寻找重构代码并使用 IoC 和纯虚拟方法而不是按原样保留工作耦合代码的充分理由。

最佳答案

您应该或不应该重构现有代码的原因有很多。每种情况都是独一无二的。如果你正在谈论某种具有大型代码库的项目,并且你想重构它的核心,它运行良好且经过适当测试,而不是在 99% 的情况下,我建议你不要这样做。您可以在测试代码中添加更多错误,而无需进行真正需要的改进。 如果代码只是收集一些信息,您可以提取用于测试使用此对象的类的接口(interface)。如果您出于某些原因不使用单元测试而不是保持原样。 总的来说,你的对手可能是对的,当你真正需要它们时创建接口(interface)并编写干净的代码并轻松提取依赖项。

关于c++ - 纯虚拟 C++ 编码的优点和缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33737585/

相关文章:

c++ - 将结构对象作为参数传递给 C++ 中的函数是一种好习惯吗?

java - 我是否需要显式释放使用 CDI 创建的上下文 JDialog?

c# - C# 中的 Guice 等价物

objective-c - 在 Objective-C 中实现纯虚方法

c++ - 具有纯虚方法的抽象类 - 为什么可以执行 "Abstract * abs3;"?

C++ 继承问题,基类指针不能指向子类

c++ - 信息实际上并未存储在节点数组中

c# - 创建使用控制反转的对象

c++ - 纯虚函数实现的默认行为

c++ - MSVC 中的复合文字