189 8069 5689

详谈Java编程之委托代理回调、内部类以及匿名内部类回调(闭包回调)-创新互联

最近一直在看Java的相关东西,因为我们在iOS开发是,无论是Objective-C还是Swift中,经常会用到委托代理回调,以及Block回调或者说是闭包回调。接下来我们就来看看Java语言中是如何实现委托代理回调以及闭包回调的。当然这两个技术点虽然实现起来并不困难,但是,这回调在封装一些公用组件时还是特别有用的。所以今天,还是有必要把Java中的委托代理回调以及闭包回调来单独的拿出来聊一下。

成都创新互联公司总部坐落于成都市区,致力网站建设服务有网站制作、成都网站制作、网络营销策划、网页设计、网站维护、公众号搭建、重庆小程序开发公司、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!

本篇博客我们依然依托于实例,先聊聊委托代理回调的实现和使用场景,然后再聊一下使用匿名内部类来进行回调,其实就是我们常说的“闭包”回调。闭包回调的实现方式其实就是匿名内部类的使用。既然本篇博客我们使用到了匿名内部类,我们就再聊一下Java中的内部类的相关东西。

一、委托代理回调

在iOS开发中,我们经常使用到委托代理回调,想TableView、CollectionView等等,这些高级控件会依赖于委托回调来完成一些配置。当然在Java中委托代理回调也是非常有用的,接下来我们就来看一下Java中的委托代理回调。当然在Swift或者OC中的委托代理回调是依托于“协议”的,Swift或者OC中的“协议”其实就是Java语言中的“接口”。所以在Java中的委托代理回调,依然要依托于“接口”来实现。

1、类图

首先我们给出该部分实例的类图,然后我们根据下方的类图来设计实现我们的具体代码。下方就是本部分所设计Demo的类图,当然,从类图中我们也能直观的看到,该示例是比较简单的,一共也就是一个接口两个类。CustomDelegate这个接口是代理类要实现的接口,其中包含了代理类要实现的方法。

从下方的类图中我们可以看出,代理类FirstClass实现了CustomDelegate代理接口,并实现了相关的代理方法。而SecondClass依赖于CustomDelegate接口,也就是说只要是实现了CustomDelegate接口的类都可以作为SecondClass的代理。而FirstClass中含有SecondClass类型的属性,并且FirstClass又实现了CustomDelegate接口,在FirstClass中,我们将secondClass对象的代理类指定为FirstClass,稍后我们在具体实现时将会介绍到。

  详谈Java编程之委托代理回调、内部类以及匿名内部类回调(闭包回调)

2、代码的具体实现

根据上述类图,我们很容易的就可以给出相应的代码实现。接下来我们就根据上述类图来给出具体的代码实现。

(1)、CustomDelegate的代码实现

下方代码段就是CustomDelegate的具体实现。当然该接口的实现比较简单,就一个setValue(String value)方法。该方法的具体作用是用来相应参数回调的。下方我们会用到该方法。

package com.zeluli.callback.delegate;

public interface CustomDelegate {
  public void setValue(String value);
}

分享名称:详谈Java编程之委托代理回调、内部类以及匿名内部类回调(闭包回调)-创新互联
本文网址:http://cdxtjz.cn/article/ipshs.html

其他资讯