在C++中使用回调是否会增加耦合?

pan*_*ajt 3 c++ oop callback

Q1.为什么使用回调函数?

Q2.回调是邪恶的吗?对于那些知道,对他人来说是噩梦的人来说,这很有趣.

Q3.回调的替代方案?

sha*_*oth 26

回调减少了耦合 - 被调用方传递了一些指针,它不知道它背后是什么.回调是如此幸运的解决方案,它们非常普遍.

例如,查看sqlite3_exec().您给它一个查询和可选的回调.它执行查询并在检索时调用每一行的回调.现在,SQLite的业务是快速执行查询并且资源消耗低,只有您的业务才能按照您的喜好处理检索到的结果.你可以将它们添加到一个容器中并稍后处理它们,或者你可以一个一个地立即处理它们,或者你可以将它们传真到某个地方并期望另一方传回它们 - SQLite并不关心,它是完全抽象的,可以只是做好自己的工作.