1 java回调机制:
首先解释java回调机制,对象能够携带一些信息,这些信息允许它在稍后的某个时刻调用初始的对象,如果回调是通过指针实现的,那么就只能寄希望程序员不会误用此指针,java更小心仔细,所以没有在语言中包括指针。
回调的价值在于它的灵活性-可以在运行时动态决定需要调用什么方法。
import static net.mindview.util.Print.*;
interface Incrementable {
void increment();
}
// Very simple to just implement the interface:
class Callee1 implements Incrementable {
private int i = 0;
public void increment() {
i++;
print(i);
}
}
class Caller {
private Incrementable callbackReference;
Caller(Incrementable cbh) { callbackReference = cbh; }
void go() { callbackReference.increment(); }
}
public class Callbacks {
public static void main(String[] args) {
Callee1 c1 = new Callee1();
Caller caller1 = new Caller(c1);
caller1.go();
caller1.go();
}
}
Caller的构造器需要一个Incrementable的引用作为参数(可以在任意时刻捕获回调的引用),然后再以后的某个时刻,对象 可以使用此引用回调Callee类。
2 观察者模式与回调机制的联系:
首先解释观察者模式:在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。
我们上例的回调机制可以把Caller作为一个主题(被观察者),Callee1作为观察者,当Caller调用go()时,通知Callee1的increment()方法改变状态,当然上个例子只是一对一的依赖,我们可以把回调机制是观察者模式的一种变体。
分享到:
相关推荐
### Java观察者模式详解 #### 一、观察者模式概述 观察者模式是一种常用的设计模式,主要用于处理对象间的一对多依赖关系。当一个对象(主题)的状态发生变化时,所有依赖于它的对象(观察者)都会收到通知并自动...
观察者模式的浅析
### 浅析JAVA异常处理机制 #### 一、Java异常处理机制概述 异常处理是Java语言中的一个重要机制,它能够确保程序在遇到不可预料的情况时仍能维持稳定运行。异常处理主要包括三个方面:捕获异常、控制程序流程以及...
### 浅析Java设计模式【3】——代理 #### 一、代理模式概述 代理模式是一种行为型设计模式,主要用于在客户端与目标对象之间起到一个中介的作用,通过代理对象来控制对目标对象的访问。代理模式的核心在于它可以...
在阅读《设计模式浅析》这篇论文时,我们可以期待作者对这些模式的深入解析,包括它们的适用场景、如何在Java中实现,以及如何通过实例来理解它们的效果。此外,论文可能还会涉及设计原则,如开闭原则(对扩展开放,...
浅析Java异常处理机制 在 Java 编程中,异常处理机制是非常重要的一部分。任何一种程序设计语言编写的程序,在运行期间都有可能会出现一个不可能执行的操作,该操作的结果会导致程序运行错误。我们可以使用异常处理...
浅析JAVA代理模式.pdf
浅析Java卡应用执行机制及虚拟机能效优化 本文将对Java卡应用执行机制和虚拟机的能效优化进行深入分析。首先,我们将介绍Java卡应用执行机制的基本过程,然后讨论影响Java卡运算能效的因素,并探讨Java卡性能优化的...
在Android开发中,接口回调是一种常见且重要的编程模式,它允许组件之间进行异步通信,尤其是在处理耗时操作如网络请求、数据库操作时。本文将深入解析Android接口回调机制,并探讨如何避免多线程环境下回调数据同步...
浅析java常用的设计模式.doc
Java反射机制是Java编程语言中一个强大的特性,它允许程序在运行时动态地获取类的信息并操作类的对象。反射机制的核心在于,它打破了编译时的束缚,使得代码具有更高的灵活性和可扩展性。在Java中,反射主要依赖于`...
浅析Java语言中的异常处理机制.pdf
本文简要分析了C#的回调机制。分享给大家供大家参考。具体分析如下: 1.回调听起来高大上,实际上本质就是委托,回调是委托的一种应用,其本质就是委托。 2.一般回调多用在线程,因此多声明为类级变量。(和类在同一...
四、回调函数的优点与挑战 回调函数提供了一种灵活的方式来组织代码,尤其是在处理异步操作时。然而,回调函数的使用也可能导致一些问题,例如"回调地狱",即过多的嵌套回调,使代码难以理解和维护。为了解决这个...
Java智能卡的设计初衷是为了在芯片研发和语言开发调试阶段提供一种更加通用和便捷的开发方式,从而取代以往只能用特定芯片匹配的汇编语言开发模式。 Java智能卡的应用与开发现状受到价格、技术水平和理论认识等因素...