Java中的回调机制就是写纸条表白

原创 2016年05月31日 15:05:50

这是书上对于JAVA回调的理解。

回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,看了人家说比较经典的回调方式:

1、Class A实现接口CallBack callback

2、class A中包含一个class B的引用b 

3、class B有一个参数为callback的方法f(CallBack callback) 

4、A的对象a调用B的方法 f(CallBack callback) ——A类调用B类的某个方法 C

5、然后b就可以在f(CallBack callback)方法中调用A的方法 ——B类调用A类的某个方法D


是不是看着很晕。我也是看着特别晕。说点我自己的理解。

1、I   call you            then  I   give a message   for you   
2、you call back      then  you return the result of the message for me 
3、the message       is the interface 

人话就是:我给你一个纸条,上面写着我喜欢你,你在那张纸条上给我答复。

纸条,对应的是接口;我,对应的是ClassA ;你,对于的Class B 。


废话不多说,上代码。

这是纸条这个接口

/**
	 * 这就是小纸条,上面会写点自己的心里话
	 *
	 */
	interface SmallNote{
		 void write(String result);
	}


下面是“Me”这个类

/**
	 * 因为我要找你,所以我中有你,so我的构造方法的参数是you。
	 * (1、class Me中包含一个class You的引用you)
	 * 
	 * 我要在纸条上写东西,所以要继承接口Smallnote。
	 * (2、Class Me实现接口SmallNote smallNote。)
	 * 
	 * 我要问你问题,这就是ask方法
	 * 我要等你回复,这就是write方法
	 * @author Administrator
	 */
	static class Me  implements SmallNote{
		private You you;
		private SmallNote smallNote;
		public Me(You you){
			this.you=you;
		}
		/**
		 * (4、Me的对象me调用You的方法 handle(smallNote,question) 
		 *     Me类调用YOU类的某个方法 handle)
		 * 我问你问题,你要处理这个纸条和相关的问题。
		 * @param question
		 */
		public void ask(final String question){
			new Thread(new Runnable() {
				@Override
				public void run() {
					// TODO Auto-generated method stub
					you.handle(smallNote, question);
				}
			}).start();
		}
		@Override
		public void write(String result) {
			// TODO Auto-generated method stub
			System.out.print("结果是:"+result);
		}
	}


这是Yout

static class You{
		/**
		 * 处理你的纸条和问题。
		 * (3、Class You 有一个参数为SmallNote的方法f(smallNote,question)) 
		 * 
		 * 写下结果
		 * (5、You就可以在handle(smallNote,question)方法中调用ME的方法)
		 * @param smallNote
		 * @param question
		 */
		public void handle(SmallNote smallNote,String question){
			System.out.print(question+":你喜欢过我么 ");
			smallNote.write("爱过");
		}
	}


这是测试类
/**
	 * 测试类
	 * @param args
	 */
	public static void main(String[] args) {
		You you=new You();
		Me me=new Me(you);
		me.ask("你喜欢我么");
	}

Java的回调机制,其实把进和出的管道已经固定好:传出消息和收回消息的方式已经确定,使用者需要做的就是,收到消息之后,处理消息,再传递出去。

Java的回调机制其实是两个对象之间的交互,也是对象之间的相互改变,。线程是一种回调,广泛的使用的各种开源项目基本原理大部分也是回调。

Java的回调也实现了高内聚,低耦合的特点。

第一次写博客,请大家多多指教






版权声明:本文为博主原创文章,未经博主允许不得转载。

[java]程序员的爱情表白(转载)

程序员的爱情表白:       我能抽象出整个世界...   但是我不能抽象出你...   因为你在我心中是那么的具体...   所以我的世界并不完整...   我可以重载甚至覆盖这个世界里的任何一种...
  • hunterjie
  • hunterjie
  • 2009年02月13日 15:22
  • 783

理解Java回调机制

其实对于回调机制,在实际使用中还是经常用到的。但好笑的是,一直没能对所谓的回调的概念有一个很清晰的理解。 最近抽空看一些书的时候,老是时不时的提到回调的概念。那好吧,正好抽空来简单总结总结,加深一下印...
  • ghost_Programmer
  • ghost_Programmer
  • 2015年03月03日 16:07
  • 2985

【31】一个js写的爱心表白神器

这几天由于时间紧的原因就不多说话了看效果吧 想看效果的点击鑫大大的小屋 love body{ overflow: hidden; margin:...
  • qq_36911154
  • qq_36911154
  • 2017年10月16日 15:49
  • 378

一个好玩的表白小程序

#include #include void I_hope(char heart) { float x,y,a; for(y = 1.5f; y>-1.5f; y-=0.1f) ...
  • ZHangFFYY
  • ZHangFFYY
  • 2016年12月04日 22:17
  • 968

给爱人的玫瑰花表白程序代码--Java版

1 书写表白语句的frame(渐入功能) package com.wanju.blessing; import java.awt.Color; import java.awt.Container;...
  • jintianhen1
  • jintianhen1
  • 2014年02月25日 09:41
  • 12210

用java生成一个表白二维码

之前对二维码粗略的看了一下觉得可以自己实现一个二维码用来表白,程序员的浪漫。 其实生成一个二维码非常简单几个类就可以搞定 import java.io.File; import java.nio....
  • qq_35488275
  • qq_35488275
  • 2017年05月02日 17:11
  • 770

java:表白,挑逗窗体程序

java:表白,挑逗窗体程序
  • VipMao
  • VipMao
  • 2016年07月07日 23:54
  • 1369

Java实现表白小程序

今天闲来无事,教大家一个哄妹子的小case。我们需要创建一个心形图案,按照心形图案的位置和长度,对所创建的字符串进行截断并在所需的位置上输出,最终能呈现在屏幕上满满的爱心。废话不多说,直接上源码看效果...
  • sumin1992
  • sumin1992
  • 2016年12月05日 17:29
  • 13496

蓝桥杯 - 传纸条 (双线程DP)

题目传送:传纸条 思路:双线程DP,具体看代码; AC代码: #include #include #include #include #include #include...
  • u014355480
  • u014355480
  • 2015年05月25日 20:43
  • 1206

用Python来写一个男女相亲小程序|码农的情人节

码农的情人节 一年一度的情人节要来啦,这个浪漫温馨的节日,走在大街小巷,走在地铁里,走在商场里,走在电影院,姑娘们手里几乎都捧着一束花,心里都是乐滋滋的,一脸幸福的样子,忽然想起来很多年前我第一次送...
  • luyaran
  • luyaran
  • 2017年02月14日 09:57
  • 827
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中的回调机制就是写纸条表白
举报原因:
原因补充:

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