2011-05-29 72 views
0

没有冒犯,但我可能会问一个奇怪的问题。我是一名初学者,学习了先进的面向对象程序,并且对一些概念感到困惑。即将到来。这可能是荒谬的。但是有人能够准确而正确地告诉我什么是回调文学的意思吗?它与我们用于信息隐藏的C++中的代理类有何不同。提前道歉,如果我误用了术语。代理功能与回拨的区别

回答

0

Wikipedia

回调是可执行代码的引用,或一段可执行代码,即作为参数传递给其他代码通过。

至于代理类,看到this question

这是两回事。代理类的一个实例可以用作回调函数,但这是我可以在它们之间看到的唯一关系。

0

回调的想法是开始一些行动,然后做其他事情,直到行动完成。

真实世界的一个例子是打电话给水管工进行维修。水管工说他们目前正在工作现场,并且无法在第二天看到他们的计划。然而,水管工说他们将在办公室后,并能够检查他们的时间表。水管工然后承诺,一旦他们在办公室并能够检查时间表,就会给你打电话。然后,您可以坐在电话旁边等待回电话(阻止回电),或者读书或画房子,直到水管工回电(延迟回拨)。

在C中,回调函数是指定为回调的函数体。函数的地址(一个函数指针)被提供给被调用的函数以执行某种动作。动作完成后,调用回调函数来执行某些操作,通常是某种形式的清理和/或通知。

正常情况下,当一个函数被调用来启动某个动作,然后在动作完成并且结果已知之前立即返回调用者时,将使用回调函数。该回调用作在启动的动作完成时通知动作结果的一种方式。

回调的另一种形式是为事件注册一个函数,以便事件发生时函数将被调用来执行某些操作。因此,您可以指定收到鼠标点击事件时的回调。

代理类是充当类的接口的类。你可以把代理类看作类似于为演员做危险事情的特技双人组。或股东会议的代理人是为实际持股人履行股东特定职责的人或组织。

回调不是代理,尽管代理可以使用回调作为执行其代理职责所需的功能的一部分。