使用匿名内部类实现Java同步回调的方法-创新互联
这篇文章运用简单易懂的例子给大家介绍使用匿名内部类实现 Java 同步回调的方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
10年积累的网站建设、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先制作网站后付款的网站建设流程,更有永清免费网站建设让你可以放心的选择与我们合作。一、回调的意义
在学习回调之前,我们需要知道使用回调的原因,和回调的应用场景。
不如先思考两个问题:
- 栈底对栈顶通常是不可见的,但是栈顶有时需要直接调用栈底
- 上级派下级做事,在此期间,下级可能需要通过上级获取高权限的协助
而在本例中,回调方式被用来处理爬取后的大量返回数据。在业务层面,这些数据被安排在调用方进行处理,但是调用方却没有处理这些数据的足够权限。于是,通过回调,业务被很好的分层并且执行。
二、如何实现同步回调
本文对同步回调的业务需求如下:
- 回调方调用调用方进行数据爬取
- 调用方调用回调方进行数据存储
- 调用方调用回调方进行日志记录
根据需求可以得到回调过程的时序图:
相应代码如下:
public interface Handler { void handle(String info); } public class Task { private String info; private void setInfo(String info) { this.info = info; } public void call() { Crawler.getInstance().crawl(new Handler() { @Override public void handle(String info) { setInfo(info); } }); } } public class Crawler { private static Crawler instance = null; public static Crawler getInstance() { if (instance == null) { instance = new Crawler(); } return instance; } private String getInfo() { return "the info from crawler"; } public void crawl(Handler handler) { handler.handle(getInfo()); } }
分享标题:使用匿名内部类实现Java同步回调的方法-创新互联
本文链接:http://myzitong.com/article/dgsdgj.html