首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Boost::Signals的意义是什么?

Boost::Signals的意义是什么?
EN

Stack Overflow用户
提问于 2010-11-25 11:43:15
回答 4查看 1.4K关注 0票数 4

首先,我是一个编程新手,所以不要取笑我太多。

我所见过的信号唯一的用途是GUI工具包,而且GUI工具包都有自己的信号。那么,Boost:Signals甚至可以与这些GUI工具包一起使用吗?这是个好主意吗?signals还有哪些其他应用?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-25 11:48:47

Signals是一种事件消息传递实现,非常类似于Smalltalk/Objective C Messages或其他各种(例如C#)语言中的Events

您可以将它们用于各种任务,请查看Observer Pattern

为什么要使用观察者模式?

好处在很大程度上是组织上的,当你使用大型应用程序时,应用有助于维护开发团队一致性的重用模式是很重要的。

当特定模式的实现成为事实(或接近)时,它特别有用,因为这意味着新团队成员的准备时间可能会加快,不仅是因为他们以前使用过该实现,还因为该实现的流行将意味着有广泛的资源和文档可用于加速学习。

从纯代码的角度来看,所有的模式看起来都很臃肿,但是当您开始理解软件开发中涉及的超过60%的成本是在维护生命周期中时,为了获得一致性而额外的代码是非常值得的。

另一个好处是有助于软件重用,根据实现的风格,观察者模式可以帮助实现类之间的模块化和解耦。我认为这也是组织上的好处,因为不同的团队可以更容易地构建组件,或者只是因为组件更容易更换。

票数 6
EN

Stack Overflow用户

发布于 2010-11-26 05:54:47

我想说的是,信号不仅仅用于(或用于) GUI工具包。它们用于希望将数据的生产者与接收者解耦的上下文中(例如,上面提到的观察者模式)。如果您将这种想法与线程相结合,就可以很容易地实现actors,这是并发任务的有趣模式(例如,Erlang和Scala使用actors )。

票数 4
EN

Stack Overflow用户

发布于 2010-11-25 11:54:52

一种可能的用途是实现GUI工具包。您基本上设置了连接,以便从本机系统获取消息(或恰好调用它们)以生成信号。在此基础上,路由和处理信号的代码可以(至少在某种程度上)可移植。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4273570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档