回调方法是把功能定义和功能实现分离的一种手段,是一种松耦合的设计思想。
Android中的控件响应就是利用了回调方法。话不多说,直接上代码。
回调方法的接口:
- public interface ICallBack {
- // 回调方法
- public void callBackMethod();
- }
public interface ICallBack { // 回调方法 public void callBackMethod(); }
回调方法的实现类(监听类):
- /**
- * 监听类
- * @author zuolongsnail
- */
- public class CallBackListener implements ICallBack {
- @Override
- public void callBackMethod() {
- System.out.println("回调");
- }
- }
/** * 监听类 * @author zuolongsnail */ public class CallBackListener implements ICallBack { @Override public void callBackMethod() { System.out.println("回调"); } }
回调方法的调用类:
- /**
- * 调用类
- * @author zuolongsnail
- */
- public class Caller {
- private CallBackListener callBack;
- public void setCallBack(CallBackListener callBack){
- this.callBack = callBack;
- }
- public void call(){
- this.callBack.callBackMethod();
- }
- }
/** * 调用类 * @author zuolongsnail */ public class Caller { private CallBackListener callBack; public void setCallBack(CallBackListener callBack){ this.callBack = callBack; } public void call(){ this.callBack.callBackMethod(); } }
业务处理类:
- /**
- * 业务处理类
- * @author zuolongsnail
- */
- public class Main {
- public static void main(String[] args) {
- Caller caller = new Caller();
- caller.setCallBack(new CallBackListener());
- // 在业务处理的时候调用
- caller.call();
- }
- }
/** * 业务处理类 * @author zuolongsnail */ public class Main { public static void main(String[] args) { Caller caller = new Caller(); caller.setCallBack(new CallBackListener()); // 在业务处理的时候调用 caller.call(); } }
熟悉Android中Button点击事件处理的同学应该都知道跟上面是一样的。
ICallBack------->OnClickListener接口
CallBackListener--------->实现OnClickListener接口的类
Caller-------->Button对象
Main-------->业务处理类(Activity)