接口回调其实平时接触的很多,设置监听器的都是使用的接口回调技术。如何描述一下呢?
我是这么想的:
一个A类,一个B类,在A类中决定B类的具体实现(通过接口),B类可以调用A类中的方法返回一些参数(回调)。
好,捋清了。
写个栗子
package A;
public class Test implements B.MyClickListener {
/*
* 这就是A类了
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
B b = new B();
b.setMyClickListener(new Test());
b.doSomething();
}
//B类中的具体实现
@Override
public void onMyClickListener() {
// TODO Auto-generated method stub
System.out.println("A类决定的B类的具体实现");
}
//回调
@Override
public void onMyCallback(String str) {
// TODO Auto-generated method stub
System.out.println(str);
}
}
class B {
/*
* 很明显这是B类
*/
private MyClickListener myClickListener;
void doSomething() {
//实际中像适配器中 B类还会与C类组成一次接口回调。
myClickListener.onMyClickListener();
myClickListener.onMyCallback("B类给A类的回调数据");
}
/*
* 一般在B类中定义一个接口并设置它的 set
*/
interface MyClickListener {
void onMyClickListener();
void onMyCallback(String str);
}
public void setMyClickListener(MyClickListener myClickListener) {
this.myClickListener = myClickListener;
}
}