[置顶] java 回调函数学习(监听器模式)

原创 2013年12月04日 10:30:58

回调就是把函数指针做为参数传入

如函数A 做为参数传入函数B

由B函数决定何时 何地 调用函数A

 

经典形象的说明了回调函数(javascript中经常这么用)

function A(){
}

function B(A)
{
   ... ...
   A();
}

 

 

但是在JAVA中不允许将方法作为参数传递,因此只能传递类(接口),然后调用类(接口)里面的方法,这样最终实现回调的方式.

 

回调就是比如我写了一个接口,但是没有写实现类,而现在你写了一个实现类实现了我的接口,但是你不清楚将来谁会使用你的这个类和方法,使用的人都是用的接口为引用类型的。也就是用的类型是接口类型,但是实际赋值则是不知道谁写的实现类的实体

 

public interface ICallback {
	//回调函数接口及方法
	public void   func();
}

 

//回调函数接口实现类
public class ClassWithCallbackFunction implements ICallback {
	public void func() {
		System.out.println("cccccccccccccccccc");
	}
}

 

//调用那个方法执行回调函数,由这个类决定
public class Caller {
	private ICallback callback; // 私有接口成员

	public void setCallback(ICallback callback) {
		this.callback = callback;// 接口成员的实现:从外部传入
	    doCallback(); //实现回调函数
	}

	public void doCallback() { // 回调接口成员的方法
		callback.func();
	}
}

 

public class MainClass {

	public static void main(String[] args) {
		Caller caller = new Caller();
		System.out.println("-------------回调自己写入的方法-------------");
		caller.setCallback(new ICallback() {
			public void func() {
				System.out.println("aaaaaaaaaa");
			}
		});
		System.out.println("-------------回调默认实现类的方法-------------");
		caller.setCallback(new ClassWithCallbackFunction());
	}
}

 

 

通俗易懂 - 监听器实现、回调函数。

我们用好简单的例子和代码来说明监听器的实现也及回调怎么写。 背景:女孩叫男朋友出去玩时,男朋友在打游戏。 女孩有了一个男朋友。女孩说:你打完了叫了,我们再一起出去玩。男朋友同意了,...
  • cch1024
  • cch1024
  • 2015年12月09日 21:15
  • 1119

<监听器模式>在C++ 与 Java 之间实现的差异

前言:         关于各种语言孰优孰劣的讨论在软件界就是个没完没了的话题,今天我决定也来掺和下。不过我想探讨的不是哪种语言的性能如何,钱途如何,而是站在语言本身特性的基础上中肯地比较探讨。因为...
  • lbaihao
  • lbaihao
  • 2016年11月06日 22:25
  • 712

Java回调机制(以Android事件监听器为例)

Java的设计模式中有回调这个机制,在Android开发中我们也会经常用到回调机制。下面就通过一些小例子来说明什么是回调。   假如我们要实现这个这样一个功能。 MainActivity中由一个Fra...
  • u010712277
  • u010712277
  • 2016年02月25日 17:50
  • 1007

Java基础———Java中的回调与事件

1、基本概念         软件模块之间总是存在一定的联系,各个模块之间总是需要传递信息,eg:当驱动模块检测到键盘上的键被按下时需要通知界面模块。         回调是一种软件模块之间信息传递的...
  • fang_yang_wa
  • fang_yang_wa
  • 2017年05月05日 17:51
  • 159

Java的代理模式和回调函数

-----------------------题记: 因为在使用HibernateCallback中遇到的疑问,所以上网查了很多资料,明白原理后发现跟代理模式很像,那么它们是怎么实现的,有什么区别和相...
  • u011483012
  • u011483012
  • 2013年09月02日 16:45
  • 1668

回调函数和观察者模式

Android的框架中有非常多的地方使用了回调的模式,例如Activity的生命周期,按钮的点击事件等。 下面是回调的基本模型: [java] view plain...
  • yxwbtb
  • yxwbtb
  • 2015年07月15日 17:13
  • 2890

回调函数升级版-设计模式(观察者模式)

书接上回,上一周大体写了一下回调函数的使用,这周我就大体说一下设计模式中的观察者模式。我自己认为观察模式就是回调函数的升级版,在用法上。废话少说,直接上图。 这是我正在弄的一个应用,画面有点模仿荔枝...
  • liujianshui
  • liujianshui
  • 2015年07月07日 14:32
  • 741

java 回调函数学习(监听器模式)

回调就是把函数指针做为参数传入 如函数A 做为参数传入函数B 由B函数决定何时 何地 调用函数A   经典形象的说明了回调函数(javascript中经常这么用) function A(){...
  • hbiao68
  • hbiao68
  • 2016年09月07日 17:19
  • 50

Java 回调函数 与 观察者模式

观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目...
  • chy555chy
  • chy555chy
  • 2016年10月10日 15:11
  • 616

Java中的单例模式、工厂模式、接口回调、异常

For循环:起点为 基本数据类型,包括boolean . Equals():重写原因,希望在地址不同但内容相同时也能返回true。 匿名对象:直接new出对象,不需要对象名来接收。 New Pe...
  • u010296640
  • u010296640
  • 2016年10月13日 20:32
  • 295
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[置顶] java 回调函数学习(监听器模式)
举报原因:
原因补充:

(最多只允许输入30个字)