1

我正在使用 libsigc++ 连接应用程序,并且不确定更简单的方法。

有一个预先存在的对象层次结构来管理数据层,并且顶层对象公开了所有功能。到目前为止一切都很好。

为此,我添加了一个 GUI 对象层次结构,并在应用程序对象中将它们与信号连接挂钩。要建立连接,我需要指向发送者和接收者的指针。

现在,我是否直接在树中很远的地方挂接子小部件,从而需要在树上上下传递指针?

或者,我是否在链中的每一步都经历了挂接信号和插槽的艰苦过程?

一方面,传递指针打破了 sig-slot 模型给你带来的分离。另一方面,在每一步创建连接似乎与 sig-slot 应该提供的所谓的“事件心灵感应”不符。

有此模型经验的人会考虑使用默认方法吗?

4

1 回答 1

1

就个人而言,我认为使用信号/插槽机制“跳过”层没有任何问题。我更喜欢这样看:一个组件正在向野外发送信号,任何对这些信号感兴趣的人都可以收听它们。

一些提示:避免发送过于通用的信号,并且不要依赖槽的执行顺序(如果为给定信号调用了许多槽)。

于 2009-04-28T21:15:32.567 回答