gpt4 book ai didi

c++ - 在 C++ 中重构一个类

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:50:20 26 4
gpt4 key购买 nike

我有一个类 A,它实现了很多功能。 A类非常稳定。

现在我有一个新的功能需求,其中一些功能与 A 实现的功能相匹配。我不能直接从 A 类继承我的新类,因为那样会给我的新类带来很多冗余。

那么,我应该在两个类中复制公共(public)代码吗?

或者,我应该创建一个新的基类并将公共(public)代码移动到基类,并从中派生类 A 和新类吗?但这将导致我现有类(class)发生变化。

那么,哪种方法更好?

最佳答案

除非有充分的理由不修改 A 类,否则重构并创建一个通用基础(或者更好的是,一个两者都可以使用但不一定派生自的通用类)。

您始终可以使用私有(private)继承来访问共享功能,而无需修改类作为外部接口(interface) - 这种更改需要重建,但仅此而已。将所有功能留在类 A 上,将它们转发给共享实现类。

您可能不想重构而是复制代码的一个原因是,如果新类的功能可能会更改,但旧类中不需要相同的更改。不复制代码的原因之一是只需要在一个地方进行修复或更改。如果将要发生的更改会破坏原始类,那么您可能想改为复制代码。尽管在大多数情况下,只有当这两个类不像您想象的那样相似时才会发生这种情况,并且您会努力尝试抽象出一组通用的功能。

关于c++ - 在 C++ 中重构一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/488687/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com