模块之间有三种调用方式:
1、同步调用
同步调用很简单,就是直接调用方法B,必须等到方法A执行完才会继续执行原程序。
2、异步调用
异步调用,就是在A程序中给程序B一个实现,当B运行的时候,在满足条件的情况下能够调用A程序中的实现。举例说明
public interfaceFood
{voideat();
}public class Cow implementsFood
{
@overridevoideat()
{
syso("eat cow");
}
}public classTiger
{privateFood food;public voidsetFood(Food food)
{this.food =food;
}voidhungry()
{
syso("hungry");
if(eat!=null)food.eat();
}public void staticmain(String[] args)
{
Tiger tiger=newTiger();
tiger.setFood(newCow());
tiger.hungry();
}
}
老虎饿了,假如有食物就可以吃它,现在牛就相当于程序A 实现了这个接口,
老虎就相当于程序B,里面包含这个接口,
现在将牛送到老虎的嘴边,就是setFood
老虎饿了就要吃牛了,这个时候就调用了A程序实现的这个接口。
3、回调
这个写过android程序的肯定会非常熟悉啦,回调其实就是上面两个的组合。
比如一般我们在实例化一个Button类,会给它设置一个OnClickListener,这个就相当于上面的异步调用,但是这个异步调用又是由Button自己引发的,button的 performClick()模拟点击事件然后会执行自定义的OnClickListener。