代理功能和回拨的区别

时间:2011-05-29 08:01:35

标签: class proxy callback

没有冒犯,但我可能会问一个奇怪的问题。我是初学者,学习高级OOP,并对一些概念感到困惑。即将到来。这可能是荒谬的。但有人可以准确而正确地告诉我回调文学是什么意思吗?它与我们用于信息隐藏的C ++中的代理类有何不同。如果我错过了术语,请提前道歉。

2 个答案:

答案 0 :(得分:0)

来自Wikipedia

  

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

至于代理类,请参阅this question

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

答案 1 :(得分:0)

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

来自现实世界的一个例子是致电水管工进行维修。水管工说他们目前正在工作现场,现在无法看到他们第二天的日程安排。然而,水管工说他们将在以后办公室,并能够检查他们的日程安排。然后水管工承诺在他们在办公室后给你回电并能够检查时间表。然后你可以坐在电话旁边等待回电话(阻止回电)或读书或画房子直到管道工回电(延期回电)。

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

通常在调用函数以启动某个操作时使用回调,然后在操作完成并且其结果已知之前立即返回调用者。回调用作在启动操作完成时通知操作结果的方法。

另一种形式的回调是为事件注册一个函数,这样当事件发生时,函数将被调用来做某事。因此,您可以指定收到鼠标单击事件的回调。

代理类是一个充当类的接口的类。您可以将代理类视为类似于为演员执行危险操作的特技双重类。或者股东会议的代理人是代表实际股东履行股东特定职责的个人或组织。

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