模块之间有三种调用方式:

  1、同步调用

  同步调用很简单,就是直接调用方法B,必须等到方法A执行完才会继续执行原程序。

  2、异步调用

  异步调用,就是在A程序中给程序B一个实现,当B运行的时候,在满足条件的情况下能够调用A程序中的实现。举例说明

public interface Food
{void eat();}public class Cow implements Food
{@overridevoid eat(){syso("eat cow");}}public class Tiger
{private Food food;public void setFood(Food  food){this.food =food;}void hungry(){syso("hungry");if(eat!=null)food.eat();}public void static main(String[] args){Tiger tiger=new Tiger();tiger.setFood(new Cow());tiger.hungry();}}

    老虎饿了,假如有食物就可以吃它,现在牛就相当于程序A 实现了这个接口,

老虎就相当于程序B,里面包含这个接口,

现在将牛送到老虎的嘴边,就是setFood

老虎饿了就要吃牛了,这个时候就调用了A程序实现的这个接口。

  3、回调

  这个写过android程序的肯定会非常熟悉啦,回调其实就是上面两个的组合。

  比如一般我们在实例化一个Button类,会给它设置一个OnClickListener,这个就相当于上面的异步调用,但是这个异步调用又是由Button自己引发的,button的                     performClick()模拟点击事件然后会执行自定义的OnClickListener。

转载于:https://www.cnblogs.com/maydow/p/4740831.html

简单解析三种JAVA调用方式-同步,异步,回调相关推荐

  1. 三种创建线程方式之Callable接口

    一.类继承关系及API解析 Callable接口 @FunctionalInterface public interface Callable<V> {V call() throws Ex ...

  2. 框架源码系列九:依赖注入DI、三种Bean配置方式的注册和实例化过程

    一.依赖注入DI 学习目标 1)搞清楚构造参数依赖注入的过程及类 2)搞清楚注解方式的属性依赖注入在哪里完成的. 学习思路 1)思考我们手写时是如何做的 2)读 spring 源码对比看它的实现 3) ...

  3. Mongodb的三种集群方式的搭建

    Mongodb是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key-Value形式.关于Mongodb的特点,这里就不多介绍了,大家可以去看看官方说明:http://docs.mong ...

  4. 了解mysql的三种不同安装方式的区别

    学习目的:了解mysql的三种不同安装方式的区别 学习内容: mysql 的安装有三种:分别是源码安装.二进制安装.rpm安装. 源码安装的优势:linux操作系统开放源代码,因此在其上面安装的软件大 ...

  5. LVS:三种负载均衡方式比较+另三种负载均衡方式

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  6. java单例模式 三种_三种java单例模式概述

    在java语言的应用程序中,一个类Class只有一个实例存在,这是由java单例模式实现的.Java单例模式是一种常用的软件设计模式,java单例模式分三种:懒汉式单例.饿汉式单例.登记式单例三种.下 ...

  7. 【Python自动化任务】让运维更简单的7种定时任务实现方式,总有一种适合你的场景

    想要看更加舒服的排版.更加准时的推送 关注公众号"不太灵光的程序员" 每日八点有干货推送 有粉丝留言问什么时候可以写一个关于自动化任务的文章 准备上!~ 感觉有用关注公众号 &qu ...

  8. ios首次加载web_IOS_IOS中UIWebView的使用详解,一、初始化与三种加载方式 UI - phpStudy...

    IOS中UIWebView的使用详解 一.初始化与三种加载方式 UIWebView继承与UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种 ...

  9. lvs的调度算法有几种_LVS:三种负载均衡方式比较

    1.什么是LVS? 首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.调度器具有很 ...

  10. asp.net session 介绍一三种Session存储方式

    asp.net session 介绍一三种Session存储方式 www.firnow.com 时间:2009-03-04 作者:匿名 编辑:sky 点击: 1478 [评论] 对于asp.net的程 ...

最新文章

  1. 第0周---python网络爬虫前奏
  2. 编程软件python中的if用法-Python高效编程的19个技巧
  3. ubuntu系统和ROS系统的版本对应关系
  4. el-amap 第一次正常第二次报错_flutter run: build tools revision 报错解决
  5. 计算机应用技术基础-2答案,2017年计算机应用技术基础练习题及答案
  6. Django--模板语言
  7. m1MacBook的TensorFlow虚拟环境---pytables的安装
  8. linux的重要文件,Linux中重要文件夹介绍
  9. Android NDK开发之 Neon优化
  10. 视频追踪(meanshift和camshift算法)
  11. springboot内嵌tomcat如何优雅开启http端口
  12. Sqlserver中的日期类型值不能小于1753年
  13. 阿里云网盘内测地址,阿里云网盘申请内测资格链接
  14. 请打开正确的提问方式
  15. 人工智能学习(八斗学院)
  16. 【损失函数系列】softmax loss损失函数详解
  17. 电力电子学习 2
  18. python文件夹操作_Python文件夹与文件的操作 ZZ
  19. ECMAScript重点复习(一)
  20. iOS Secure Enclave

热门文章

  1. JMeter学习笔记(四)
  2. 微软在线实验室启用谷歌的reCAPTCHA,我们又丢失了一个好东东
  3. Android NDK 入门与实践
  4. 七 、Quartz 2D Bitmap上下文
  5. 2015.11.18——Lua中文教程
  6. Spring @Aspect实现切面编程
  7. C#两路list数组归并去重
  8. 分红酒 - 蓝桥杯 - 已更新
  9. CSS实现DIV悬浮
  10. postman 的基础使用