首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Java】深入浅出Java回调原理

回调 首先在Eclipse中新建一个Java项目:CallBackDemoInJava; 然后再新建三个类:Manager(该类用来模拟总经理)、Personnel(该类用来模拟员工)、Main(主类)...这里的phoneCall我们就称为回调方法,为什么称之为回调呢?...现在我们来总结下满足回调的两个基本条件: 1.Class A调用Class B中的X方法 2.ClassB中X方法执行的过程中调用Class A中的Y方法完成回调 一切看上去都很完美以上例子代码简单通俗地描述了回调...,但是这些杂七杂八的大爷们都要求做完事情就电话通知,每个类都会有一个类似phoneCall的方法作为回调方法,这时,我们利用面向对象的思想来看是不是可以把这个回调方法抽象出来作为一个独立的抽象类或接口呢...多态的思想油然而生~~鉴于JAVA接口的好处,我们就定义一个名为CallBack的接口作为回调接口,再在该接口下定义一个名为backResult的抽象方法作为回调方法,让那些总经理类啦经理类啦主管类啦~

25530
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java 回调函数的使用

    回调函数 回调函数是什么鬼, 回调函数干嘛用,回调函数可以怎么用 如果有过android开发经验,经常可以看到一些类似下面的代码 Button Btn1 = (Button)findViewById(...回调和异步调用的关系非常紧密:使用回调来实现异步消息的注册,通过异步调用来实现消息的通知 所谓回调,就是客户程序CLIENT调用服务程序SERVER中的某个函数SA(),然后SERVER又在某个时候反过来调用...例如Win32下的窗口过程函数就是一个典型的回调函数。...简单来说,就是在调用一个组建的方法时,按照他的定义,注册一个我们自己的方法,期待这个组建在某一个特地场景下调用我们注册的方法,实现对应的功能 设计回调函数的思路 上面简单的说明了什么是回调函数,那么怎么去设计一个回调函数呢...耦合太高,没法复用 so 形式话的结构如下: CacheClient: 回调接口 CallableInterface 缓存操作类 注册回调函数类 使用方 CountService: db中查询评价总数的方法

    2.7K80

    实现java的异步回调

    说下java的异步回调模式,是指当调用者实现了CallBack接口,调用者包含了被调用者的引用,在调用者类中调用被调用者的方法,然后在被调用者类的方法中调用调用者类的callBack方法。...举个例子,异步体现在A类通过新起的一个线程执行B类的方法,至于该方法有没有执行完,暂时不用去等待。 ? 下面是一个回调代码示例。...类Invoker实现了一个CallBack接口,来计算一个数的平方,在类Invoker中调用了Handler类的方法来计算,Handler通过回调返回计算结果。...先定义一个回调接口,如下: package com.wpw.springbootjuc.test; public interface CallBack { /** * 一个回调函数...100.0 不过,异步回调作用还是不是很大,后面涉及消息机制知识在说一下它的缺点吧。

    4.7K20

    Java回调机制解读

    在Java中,可以使用Future+Callable的方式做到这一点。 (3)回调 ?...最后是回调,回调的思想是: 类A的a()方法调用类B的b()方法 类B的b()方法执行完毕主动调用类A的callback()方法 这样一种调用方式组成了上图,也就是一种双向的调用方式。...总结起来,回调的核心就是回调方将本身即this传递给调用方,这样调用方就可以在调用完毕之后告诉回调方它想要知道的信息。...同步回调与异步回调 上面的例子,可能有人会提出这样的疑问: 这个例子需要用什么回调啊,使用同步调用的方式,学生对象回答完毕问题之后直接把回答的答案返回给老师对象不就好了?...,使用回调会是一种更加合适的选择,优先处理的数据放在回调方法中先处理掉。

    90210

    Java回调机制详解

    随着工作经验的增加,自己经常听到这儿使用了回调,那儿使用了回调,自己是时候好好研究一下Java回调机制了。...网上关于Java回调的文章一抓一大把,但是看完总是云里雾里,不知所云,特别是看到抓取别人的代码走两步时,总是现眼。...于是自己决定写一篇关于Java机制的文章,以方便大家和自己更深入的学习Java回调机制。 首先,什么是回调函数,引用百度百科的解释:回调函数就是一个通过函数指针调用的函数。...回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应[2]....1.2 Java回调实战 同步调用很明显的缺点是UpperService必须等待BottomService的返回结果之后,才能够继续向下执行upperTaskAfterCallBottomService

    1.5K31

    co.js 异步回调的原理

    本文将剖析 co.js 是为何用同步的写法,就可以解决异步回调的问题。...('path2', function (err, data) { if (err) throw err; console.log(data); }); }); 这是一个常见的异步回调的例子...可是好像哪里不对,这个本质上还是之前的回调方法。我们期望的方法应该是类似这样的,通过一个yield关键字,来表明这里是异步执行的。这样的写法简洁明了,但直接这样写肯定是不能执行的。...所谓 Thunk 化就是将多参数函数,将其替换成单参数只接受回调函数作为唯一参数的版本 ,上面代码中的 readFile 就是个例子。...由之前的分析我们可以知道,利用 generator 来实现异步回调的实质就是把, gen.next() 放入回调函数中,thunk 化之后,可以得到一个只接受 callback 的函数,换句话说,函数中除了

    2.5K00

    co.js 异步回调的原理

    本文将剖析 co.js 是为何用同步的写法,就可以解决异步回调的问题。...('path2', function (err, data) { if (err) throw err; console.log(data); }); }); 这是一个常见的异步回调的例子...可是好像哪里不对,这个本质上还是之前的回调方法。我们期望的方法应该是类似这样的,通过一个yield关键字,来表明这里是异步执行的。这样的写法简洁明了,但直接这样写肯定是不能执行的。...所谓 Thunk 化就是将多参数函数,将其替换成单参数只接受回调函数作为唯一参数的版本 ,上面代码中的 readFile 就是个例子。...由之前的分析我们可以知道,利用 generator 来实现异步回调的实质就是把, gen.next() 放入回调函数中, thunk 化之后,可以得到一个只接受 callback 的函数,换句话说,函数中除了

    2.6K80

    co.js 异步回调的原理

    本文将剖析 co.js 是为何用同步的写法,就可以解决异步回调的问题。...('path2', function (err, data) { if (err) throw err; console.log(data); }); }); 这是一个常见的异步回调的例子...可是好像哪里不对,这个本质上还是之前的回调方法。我们期望的方法应该是类似这样的,通过一个yield关键字,来表明这里是异步执行的。这样的写法简洁明了,但直接这样写肯定是不能执行的。...所谓 Thunk 化就是将多参数函数,将其替换成单参数只接受回调函数作为唯一参数的版本 ,上面代码中的 readFile 就是个例子。...由之前的分析我们可以知道,利用 generator 来实现异步回调的实质就是把, gen.next() 放入回调函数中, thunk 化之后,可以得到一个只接受 callback 的函数,换句话说,函数中除了

    2.5K30

    Java编程之委托代理回调、内部类以及匿名内部类回调(闭包回调)

    最近一直在看Java的相关东西,因为我们在iOS开发是,无论是Objective-C还是Swift中,经常会用到委托代理回调,以及Block回调或者说是闭包回调。...接下来我们就来看看Java语言中是如何实现委托代理回调以及闭包回调的。当然这两个技术点虽然实现起来并不困难,但是,这回调在封装一些公用组件时还是特别有用的。...所以今天,还是有必要把Java中的委托代理回调以及闭包回调来单独的拿出来聊一下。...当然在Java中委托代理回调也是非常有用的,接下来我们就来看一下Java中的委托代理回调。...当然在Swift或者OC中的委托代理回调是依托于“协议”的,Swift或者OC中的“协议”其实就是Java语言中的“接口”。所以在Java中的委托代理回调,依然要依托于“接口”来实现。

    1.4K90

    JAVA回调机制(CallBack)详解

    序言 最近学习java,接触到了回调机制(CallBack)。初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义。...当然了,我在理解了回调之后,再去看网上的各种讲解,确实没什么问题。但是,对于初学的我来说,缺了一个循序渐进的过程。...该过程完全由Student类的实例对象单独完成,并未涉及回调机制。 第2章. 幼师的找茬 课间,幼师突发奇想在黑板上写了“168 + 291 = ”让小明完成,然后回办公室了。 花擦!...到这里,回调功能就正式登场了,小明的fillBlank方法就是我们常说的回调函数。...这里聊的是回调机制啊!! 我只知道,后来小红的业务不断扩大,终于在幼稚园毕业之前,用挣到的钱买了人生的第一套房子。 完!!!

    1.2K10

    Java接口回调机制详解

    一、前言 最近在看android fragment与Activity进行数据传递的部分,看到了接口回调的内容,今天来总结一下。 二、回调的含义和用途 1、什么是回调?...2、回调的用途 回调一般用于层间协作,上层将本层函数安装在下层,这个函数就是回调,而下层在一定条件下触发回调。...三、Java实现接口回调 在C/C++中,要实现回调函数,被调用函数要告诉调用者自己的指针地址。...但是Java没有指针地址,不能传递方法的地址,一般采用接口回调的方法来实现:把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被调用类实现的接口的方法。...原理:首先创建一个回调对象,然后再创建一个控制器对象,将回调对象需要被调用的方法告诉控制器对象,控制器对象负责检查某个场景是否出现或某个条件是否满足,当满足时,自动调用回调对象的方法。

    1.9K30

    Java接口回调机制详解

    一、前言 最近在看android fragment与Activity进行数据传递的部分,看到了接口回调的内容,今天来总结一下。 二、回调的含义和用途 1、什么是回调?...2、回调的用途 回调一般用于层间协作,上层将本层函数安装在下层,这个函数就是回调,而下层在一定条件下触发回调。...三、Java实现接口回调 在C/C++中,要实现回调函数,被调用函数要告诉调用者自己的指针地址。...但是Java没有指针地址,不能传递方法的地址,一般采用接口回调的方法来实现:把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被调用类实现的接口的方法。...原理:首先创建一个回调对象,然后再创建一个控制器对象,将回调对象需要被调用的方法告诉控制器对象,控制器对象负责检查某个场景是否出现或某个条件是否满足,当满足时,自动调用回调对象的方法。

    2.5K20
    领券