您现在的位置是:主页 > news > 湖北住房和城乡建设委员会网站/地推网
湖北住房和城乡建设委员会网站/地推网
admin2025/5/1 7:12:07【news】
简介湖北住房和城乡建设委员会网站,地推网,危险网站怎么办,网站制作多少费用应用场景:比如我写一个工具,下载任务,下载任务可能成功,可能失败。为了解耦,我的这个下载工具类只能专门用来下载,如何处理成功和失败,这个就交给调用方来完成。 回调接口 接口声明。 /*** 描…
湖北住房和城乡建设委员会网站,地推网,危险网站怎么办,网站制作多少费用应用场景:比如我写一个工具,下载任务,下载任务可能成功,可能失败。为了解耦,我的这个下载工具类只能专门用来下载,如何处理成功和失败,这个就交给调用方来完成。
回调接口
接口声明。
/*** 描…
应用场景:比如我写一个工具,下载任务,下载任务可能成功,可能失败。为了解耦,我的这个下载工具类只能专门用来下载,如何处理成功和失败,这个就交给调用方来完成。
回调接口
接口声明。
/*** @描述: 结果回调*/
public interface ResultCallback {void success();void failure(Exception e);
}
被调用方(下载任务)
接口定义,并使用。
/*** @描述: 下载任务*/
public class Download {private ResultCallback callback;public Download(ResultCallback callback) {this.callback = callback;}public void excuteDownload(String usrl) {new Thread(new Runnable() {@Overridepublic void run() {HttpURLConnection conn = null;try {conn = (HttpURLConnection) new URL(usrl).openConnection();conn.setConnectTimeout(5 * 1000);conn.setRequestMethod("GET");//do download things here ...callback.success(); //thing's done callback} catch (IOException e) {callback.failure(e); // thing's error callback}}});}
}
调用方
接口实现。
public static void main(String args[]){new Download(new ResultCallback() {@Overridepublic void success() {//do something when work is done}@Overridepublic void failure(Exception e) {//do something when work is fail}}).excuteDownload("your parameter");}
总结:接口回调,实际上是利用了java中的多态性,利用父亲引用指向子类的地址,从而实现父亲接口调用子类实现类的方法。接口回调是设计模式的解耦核心,可以说几乎所有的模式都用到了接口回调。