<分区>
我来自 Java 背景,今天与我们的一位 C++ 开发人员就将现有代码转换为具有纯虚拟方法(接口(interface))并将它们用作整个代码的依赖注入(inject)以更好地解耦进行了对话.
他试图说服我,我们应该只在代码中存在“逻辑”时才使用它们,如果代码只是从 PC 收集信息,则没有必要。
长话短说,我正在寻找重构代码并使用 IoC 和纯虚拟方法而不是按原样保留工作耦合代码的充分理由。
<分区>
我来自 Java 背景,今天与我们的一位 C++ 开发人员就将现有代码转换为具有纯虚拟方法(接口(interface))并将它们用作整个代码的依赖注入(inject)以更好地解耦进行了对话.
他试图说服我,我们应该只在代码中存在“逻辑”时才使用它们,如果代码只是从 PC 收集信息,则没有必要。
长话短说,我正在寻找重构代码并使用 IoC 和纯虚拟方法而不是按原样保留工作耦合代码的充分理由。
最佳答案
您应该或不应该重构现有代码的原因有很多。每种情况都是独一无二的。如果你正在谈论某种具有大型代码库的项目,并且你想重构它的核心,它运行良好且经过适当测试,而不是在 99% 的情况下,我建议你不要这样做。您可以在测试代码中添加更多错误,而无需进行真正需要的改进。 如果代码只是收集一些信息,您可以提取用于测试使用此对象的类的接口(interface)。如果您出于某些原因不使用单元测试而不是保持原样。 总的来说,你的对手可能是对的,当你真正需要它们时创建接口(interface)并编写干净的代码并轻松提取依赖项。
关于c++ - 纯虚拟 C++ 编码的优点和缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33737585/