信号槽架构的最佳实践

时间:2009-04-28 20:53:00

标签: c++ user-interface architecture signals-slots

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

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

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

现在,我是否直接挂在树中的子窗口小部件中,因此需要指针在树上上下传递?

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

一方面,传递指针打破了sig-slot模型购买的分离。另一方面,在每个步骤创建连接似乎与sig-slots应该提供的假设的“事件心灵感应”押韵。

有人在这个模型中遇到过哪种人会考虑默认方法?

1 个答案:

答案 0 :(得分:1)

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

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