`

java回调机制

    博客分类:
  • java
阅读更多
所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,其实我刚开始也是这样不理解,来看看人家说的比较经典的回调方式:
Class A实现接口CallBack callback——背景1
class A中包含一个class B的引用b ——背景2
class B有一个参数为callback的方法f(CallBack callback) ——背景3
A的对象a调用B的方法 f(CallBack callback) ——A类调用B类的某个方法 C
然后b就可以在f(CallBack callback)方法中调用A的方法 ——B类调用A类的某个方法D

举个例子说明一下:小明做作业遇到一个问题,“1+1=?”。小明不会,于是去厨房问妈妈。妈妈说她现在比较忙,没时间答复小明,等她做完家务会去帮他结题。小明说,那自己先去做其他题目。
下面用代码来说明一下:

//首先定义一个回调接口,对应于背景1
public interface CallBack {
public void result(String result);
}

//定义小明类,小明需要有一个回调方法,让妈妈在算好题目之后来通知自己,所以需要实现回调接口,对应于背景2
public class XiaoMing implements CallBack {
private Mother mother;

public XiaoMing(Mother mother) {
this.mother = mother;
}

public void askQuestion(final String question) {
System.out.println("小明:妈妈,请问" + question);
new Thread(new Runnable() {
@Override
public void run() {
mother.executeQuestion(XiaoMing.this, question);
}
}).start();
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
doOtherHomework();
}

public void doOtherHomework() {
System.out.println("小明:那我先去做其他题目。");
}

@Override
public void result(String result) {
System.out.println("妈妈:" + result);
}
}

//定义妈妈类,在这里妈妈需要在做完家务之后,去告诉小明答案,即调用小明的方法,对应于背景3
public class Mother {
public void executeQuestion(CallBack callback, String question) {
System.out.println("妈妈:等我做完家务再帮你结题。");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("妈妈:我做完家务了,现在就来解答你的问题。");
callback.result("1+1=2。");
}
}
//测试类
public class test {
public static void main(String[] args) {
Mother mother = new Mother();

XiaoMing son = new XiaoMing(mother);

son.askQuestion("1+1=几?");
}
}
分享到:
评论

相关推荐

    Java回调机制

    Java回调机制是软件设计模式中的一种,特别是在Java和Android开发中广泛应用。回调允许服务端对象在执行特定操作后,通知并调用客户端对象的方法。这种机制使得程序可以在异步环境中运行,即服务端处理完一个任务后...

    java回调机制1

    Java回调机制是一种编程模式,它允许一个对象在特定事件发生时调用另一个对象的方法。在上述例子中,回调机制的概念逐渐展开,通过一个简单的幼儿园加法故事进行解释。 首先,我们有`Student`类,它有一个`fill...

    浅谈JAVA回调机制1

    Java回调机制是一种编程概念,其核心在于一个对象(A)调用另一个对象(B)的方法,而这个方法内部又反过来调用A对象的另一个方法,形成一种链式反应。回调在多线程、异步处理和事件驱动编程中非常常见,因为它允许...

    两个经典例子让你彻底理解java回调机制(csdn)————程序.pdf

    Java回调机制是一种编程模式,它允许一个对象在另一个对象完成特定操作后被通知或调用。这种机制在软件设计中非常常见,特别是在处理异步操作和事件驱动编程中。通过回调,一个对象(调用者)可以注册一个回调函数或...

    java 回调函数 实现

    在回调机制中,接口扮演着关键角色,因为它定义了被调用的回调方法。例如,`OnButtonClickListener`接口可能包含了当按钮被点击时需要执行的方法。 2. **回调函数的实现**:在描述中提到,回调函数是通过自己模拟...

    java回调机制实例详解

    java回调机制实例详解 java回调机制是一种常见的设计模式,广泛应用于软件开发中。它允许一个对象在执行某个操作时,能够通知另一个对象,这样可以实现松耦合、灵活性强的编程模型。在java中,我们可以使用回调机制...

    Java回调机制解读

    Java回调机制是编程中一种非常重要的设计模式,它允许一个对象在另一个对象执行特定操作后得到通知或执行相应的处理。这种机制在Java中通常通过接口实现,使得被调用的对象能够在适当的时候调用回调方法来传递结果...

    给初学者的java回调demo

    Java回调是一种设计模式,它是当一个对象调用另一个对象的方法时,被调用对象通过某种方式在完成操作后反过来调用调用者的方法,这种机制就是回调。在Java中,回调通常通过接口或者抽象类来实现。这篇"给初学者的...

    如何用Java回调和线程实现异步调用.pdf

    Java回调机制可以分为两种:同步回调和异步回调。同步回调是在主程序中注册回调函数,等待耗时任务的完成后执行回调函数;异步回调是在耗时任务中注册回调函数,执行耗时任务后执行回调函数。 三、Java线程机制 ...

    通过简易例子讲解Java回调机制

    Java回调机制是一种设计模式,它允许一个对象在完成特定任务时通知另一个对象。这种机制使得代码更加灵活,因为被调用者可以在适当的时候主动调用调用者的某个方法,而不仅仅是被动地接收返回值。回调在多线程、事件...

    详解Java的回调机制

    Java的回调机制是一种设计模式,它允许一个对象在完成特定操作后通知另一个对象。这种机制在软件开发中常用于处理事件、异步编程以及对象间的通信。回调的主要优点是提高了代码的灵活性和可扩展性。 1. **回调的...

    Java基础核心理解+什么是回调即回调机制讲解

    ### Java基础核心理解+什么是回调及回调机制讲解 #### 一、回调机制的引入与应用场景 在软件开发中,特别是面向对象编程语言如Java中,模块间的交互是至关重要的。根据调用方式的不同,可以将模块间的交互分为三种...

    java回调函数

    Java回调函数是编程中一种非常重要的设计模式,它允许一个对象在另一个对象完成特定操作后进行通知或执行相应的处理。这种机制使得代码更加灵活,解耦了调用者和被调用者的依赖关系,通常用于事件处理、异步编程、...

    java调用回调机制详解

    Java回调机制是编程中一种常见的设计模式,它允许一个对象在特定事件发生时通知另一个对象。在Java中,回调机制通常通过接口实现,一个对象(称为回调对象)实现了特定的接口,然后将这个对象作为参数传递给另一个...

    Java回调.rar

    理解并熟练运用回调机制,能够帮助开发者编写出更加灵活、可维护的代码。在实际开发中,合理地利用回调能够提高程序的性能和用户体验,同时也有助于遵循面向对象设计原则,实现模块间的良好协作。

Global site tag (gtag.js) - Google Analytics