使用一个小例子解释Java回调/代理机制
来源:互联网 发布:老园丁淘宝店哪家正版 编辑:程序博客网 时间:2024/05/20 11:46
最近因为经常容易搞混回调和代理,就写个小例子就当给自己做个笔记吧。
- 先写回调,在写之前我们需要新建一个回调接口(interface)类addCallback,然后B类中实现回调方法,最后通过对象进行调用即可。不多说,直接来代码:
package callback;/** * Created by jeromexiong on 2017/7/7. * 这是回调接口 */@FunctionalInterfacepublic interface AddCallback { void result(int result);}
package callback;/** * Created by jeromexiong on 2017/7/7. * 调用回调方法,在Main中调用 */public class B { public B(){ //new C().addDelegate();//实现代理方法 } //调用回调方法 public void addFunc(int a, int b, AddCallback result){ result.result(a+b); }}
1.1 在Main方法中先实例化B类对象,在通过addFunc方法调用回调方法,打印回调结果。
package callback;/** * Created by jeromexiong on 2017/7/7. * 调用回调方法 */public class Main{ public static void main(String[] args){ //会调用代理方法 B b = new B(); //实现回调方法。 b.addFunc(3, 5, new AddCallback() { @Override public void result(int result) { System.out.print("\n回调方法实现add:"+result); } }); }}
- 回调就是这么简单,接下来就是代理(delegate)了。同样滴,在写代理之前我们也需要新建一个代理接口(interface)类AddDelegate,然后在A类中设置代理并且调用代理方法。
package delegate;/** * Created by jeromexiong on 2017/7/7. * 这是代理接口 */public interface AddDelegate { void addResult(int a, int b, int result);}
package delegate;/** * Created by jeromexiong on 2017/7/7. * 调用代理方法,在C中实现 */public class A { private int a = 3; private int b = 5; public AddDelegate delegate; public void setDelegate(AddDelegate delegate) { this.delegate = delegate; } //在实现代理方法之前需要先设置代理delegate public void addFunc(){ delegate.addResult(a, b, a+b); }}
2.1 在这里说一点,因为设置要給对象设置代理delegate,不能放在静态Main方法中实现,所以这里就多绕了一步,在C类中实现代理方法,然后由B类的对象调用addDelegate方法实现。
package callback;import delegate.A;import delegate.AddDelegate;/** * Created by jeromexiong on 2017/7/7. * 实现代理方法,在A中调用 */public class C implements AddDelegate { public void addDelegate(){ A a = new A(); a.setDelegate(this); a.addFunc(); } @Override public void addResult(int a, int b, int result) { System.out.print("\n代理方法实现add:"+a+"+"+b+"="+result); }}
好了,是不是觉得很简单,最后再贴上运行结果就完美了 ^_^
代理方法实现add:3+5=8回调方法实现add:8
这也是小弟对回调机制的一点拙见,不懂的请留言,如果有错误希望指出!多谢!
顺便附上小弟的项目压缩包吧。点击下载
阅读全文
0 0
- 使用一个小例子解释Java回调/代理机制
- 通过一个小例子理解java回调机制
- 实现代理的一个小例子
- Java反射机制小例子
- Java解释XML文件的小例子
- 一个Java反射机制例子
- 一个Java反射机制例子
- JAVA动态代理实现的小例子
- 一个简单例子解释 Java factory
- java动态代理的一个例子
- java动态代理--一个简单的例子
- 一个小例子解释类加载的过程
- 一个小例子很好解释了JS的事件队列
- 一个很好解释计算机网络的形象小例子
- Java的代理机制通俗地去解释
- 关于多线程中代理的一个小例子
- 关于多线程中异步代理的一个小例子
- CGLib动态代理原理及实现的一个小例子
- springboot-数据库
- Select Sort
- 六大设计原则
- Spring Boot 集成mybatis(gradle)
- android命名逻辑
- 使用一个小例子解释Java回调/代理机制
- springboot-数据校验、异常处理、单元测试、打包、日志
- Single Number III
- meteor 自动安装 [开启灯笼][官方安装包]
- springboot-模版
- Memory
- 【POJ3680】Intervals 最小费用最大流
- spring配置数据源问题
- fgm实例练习笔记-1.3函数接收参数并弹出