gpt4 book ai didi

C++:高层类层次结构

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:57:43 24 4
gpt4 key购买 nike

类层次结构在运行时有哪些缺点?

我们将 H 称为层次结构的高度(即:从基类到叶子要遍历多少个类)。

dynamic_cast 会花费更多:花费 O(H)

是否有其他运算符或语言功能受到影响?

最佳答案

主要问题是可维护性。很深的类层次结构可能没有正确建模。任何超过 3-4 级别的内容都会让您收到警报。您可能是从具体类派生的,这是您永远不应该做的事情(Liskov Substitution principle 不允许这样做)。如果您的基类充斥着函数(我的意思是纯函数),那么重构将很困难。

将您的基类拆分为几个不同的接口(interface) (Interface Segregation)。更喜欢组合而不是继承(GoF fundamental rule 软件设计)。

个人建议:尝试在没有dynamic_cast 的情况下进行编程。当我还是一名 C++ 开发人员时,我完全可以在没有 dynamic_cast 的情况下进行编程。我在适当的地方使用了设计模式,工厂,visitors等等。没有类型转换的生活要简单得多:-)。

祝你好运!

关于C++:高层类层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4345357/

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