信号和槽的优点

       信号和槽机制是Qt的一大特征,信号和槽用于对象间的通讯。简单地说就是A函数发出一个Signal,此时B函数作为这个Signal的Slot被调用。
       一直很不理解,A为什么不直接调用B,那样企不是更简单明了,中间用到Signal and Slot机制不是多此一举。事实的确如此,这种机制需要发射信号、定位连接对像,比直接调用函数慢地多。
但是存在总是有理由的,
在网上搜了Qt的优势:
大多都是说“与回调相比,它具有2个优点:1.类型安全;2.信号与槽的连接是松散的。”
听不懂他们在讲什么,就像专家一样,讲出来大家不懂的话才算有水平。

       我水平有限,就只能用通俗的话来表达了,Qt的优势在什么地方?
       自从程序设计使用分层的思想以来,特别是在一些大的工程中,高质量的代码会表现地等级森严(层次间的关连性很小),在样在代码的移植、管理和维护中有很大的好处。
       在人类社会一样中,分派任务时,级别相同的好说话,上级分派给下级更好说话,但下级分给上级任务可想而知会有什么后果,我们的统治阶层是不允许这种事的发生。分层思想中,函数调用也是如此,上层可以调用下层和同一层的函数,下层函数不可以调用上层函数,否则程序的层次性会被打破,导致结构错综复杂,难以维护和管理。
       下层有事情需要禀报的时候怎么办?上层会设立一个机构,也就是一个函数,用无限循环来查询下层的状态,如果下层真的有事情,这个机构就把这消息拿到上一层来处理。这种处理方式显得有些复杂,我们想要的简单明了的方式是,如果下层有事件发生,可以直接“调用”上层函数处理。
说了这么多其实就是想说,信号和槽的最大优势在于,它完善了程序分层的思想,它可以在不改变程序的层次性的情况下,完成由下层到上层的“调用”。在下层发出一个Signal,这时上层与其想关联的Slot函数就会响应。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值