gpt4 book ai didi

c++ - 列出将所有 setter 函数作为 Qt 中的 SLOTS 的缺点(性能/维护等)?

转载 作者:行者123 更新时间:2023-11-30 02:10:48 27 4
gpt4 key购买 nike

在 Qt 中将所有 setter 函数作为 SLOTS 有什么缺点(性能/维护等)吗?

我看到的一些缺点是,

1) 不必要的 MOC 调用和编译期间创建的不必要的 moc 文件2) 中断异常处理链,因为异常不在信号槽连接中传递3) 调试中不必要的复杂性,因为使用信号槽调试比直接方法调用更难。

您能列出任何其他缺点(如果有的话)吗?

最佳答案

如果你直接调用setter,你可以避免你提到的大部分缺点。它的行为与任何其他正常调用一样。在这种情况下,唯一的缺点是编译时间更长,bin 大小更大。

如果您通过发出信号来调用所有 setter ,则:

1)更复杂的代码;因为您必须记住将所有信号连接到每组的所有插槽。

2) 性能损失小。对于任何 GUI 应用程序来说,它都可以忽略不计;但它在那里。

3) 较少的确定性代码。 IE。根据信号的连接方式,调用可能会直接传递给被调用者,或通过事件系统发送。除了您已经提到的之外,这进一步使调试复杂化。

4) IDE 问题。如果您不使用 QtCreator 或 KDevelop,IDE 可能无法理解特殊关键字(slot、signal、emit)。

除了 (1),所有这些问题都是次要的。但我说,不这样做的主要原因是它没有意义。如果您不需要,为什么要这样做?

软件工程应该管理复杂性,而不是创造复杂性。

关于c++ - 列出将所有 setter 函数作为 Qt 中的 SLOTS 的缺点(性能/维护等)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4323616/

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