今天研究了下接口回调的问题,在网上找到一个NB的人物写的比较清楚网址:http://www.cnblogs.com/itgmhujia/archive/2008/04/16/1156251.html
接口在面向对象编程中应用极广。回调(CallBack)就是一个典型的示例。
先解释一下回调的概念。
通常情况下,我们创建一个对象,并马上直接调用它的方法。然而,在有些情况下,希望能在某个场景出现后或条件满足时才调用此对象的方法。回调就可以解决这个“延迟调用对象方法”的问题。这个被调用方法的对象称为回调对象。
实现回调的原理简介如下:
首先创建一个回调对象,然后再创建一个控制器对象,将回调对象需要被调用的方法告诉控制器对象。控制器对象负责检查某个场景是否出现或某个条件是否满足。当此场景出现或此条件满足时,自动调用回调对象的方法。
可以举个现实生活中的例子。
一读者想借《编程的奥秘——.NET软件技术学习与实践》这本书,但这本书已被其他读者借走了。于是,读者与图书馆管理员间发生了以下对话:
读者:“我把我的电话号码告诉你,等书一到就马上通知我。”
管理员:“好的。另一读者把书还回来后,马上给您打电话,书我先帮您留着。”
在上述这个场景中,读者就是“回调对象”,管理员就是“控制器对象”,读者的电话号码就是“回调对象的方法”,另一读者的还书事件就是“某一特定的场景”。
5.接口与抽象类的区别
小结一下接口与抽象类的区别。
q 抽象类是一个不完全的类,需要子类来完善它。
q 接口只是对类的约束,它仅仅承诺了类能够调用的方法。
q 一个类一次可以实现若干个接口,但一个类只能继承一个父类。
在实际编程中,接口的使用要比抽象类广泛得多。