- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
高类层次结构在运行时有哪些缺点?
我们将 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/
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!