我调用jar包为例
我:上层应用
jar:底层应用
我调用jar 需要先new底层的对象 并传入我的地址(注册)
我:实现底层提供的回调接口
jar:1)提供回调接口
2)创建控制类,必须有我的地址(回调接口)
--------------------------------------------------------------
package callback;
/**
* 回调接口
* 由底层应用提供
* 被上层应用实现
*/
public interface CallBackInterface
{
void execute();
}
package callback;
/**
* 上层应用
*
*/
public class Upper implements CallBackInterface
{
public void execute()
{
System.out.println("由底层应用来调用");
}
}
package callback;
/**
* 底层应用
* 控制类
* 必须有回调接口
*/
public class Under
{
private CallBackInterface cbInterface;
/**
* 注册
*/
public Under(CallBackInterface cbInterface)
{
this.cbInterface = cbInterface;
}
public void doSome()
{
System.out.println("执行底层的其他代码");
cbInterface.execute();//回调上层应用
}
}
package callback;
/**
* 执行
*/
public class CallBackTest
{
public static void main(String[] args)
{
Under under = new Under(new Upper());
under.doSome();
}
}