美文网首页Android笔记
29.ARouter组件互调原理

29.ARouter组件互调原理

作者: 任振铭 | 来源:发表于2021-01-28 08:11 被阅读0次

上一篇https://www.jianshu.com/p/0fa14358a765 讲了ARouter的页面跳转原理
这篇记录下ARouter是如何让两个互不依赖的组件调用对方的接口的。

通过上一篇中提到的两个map,groupMap和pathMap,我们知道所有被ARouter注解的类都会在编译期间被保存起来,并且他们的class是对所有组件可见的。那么这样一来就很清晰了,既然所有组件都能拿到对方组件的class,那么自然也可以获取到他们的对象,如此一来,要调用对方的接口非常容易。

所以我们需要做的就是暴露接口,接口下沉到common组件,继承自ARouter提供的统一接口,如Call,HomeWeather表示这是home模块提供出来的一个获取天气的接口

public interface HomeWeather extends Call{
     String getCityWeather(String city);
}

然后在home模块实现接口方法,并被ARouter注解

@ARouter(path = "/home/HomeWeatherApi")
public class HomeWeatherApi implements HomeWeather{
    public String getCityWeather(String city){
        return "home模块请求到天气数据了。。。";
    }
}

这样一来,编译之后,其他模块可以拿到HomeWeatherApi的class文件,从而可以创建出这个对象,然后强转成HomeWeather,就可以自由的调用getCityWeather接口了

HomeWeather homeRequest = (HomeWeather) RouterManager.getInstance().build("/home/HomeWeatherApi").navigation(this);
String weatherInfo = homeRequest.getCityWeather("上海");
System.out.println(weatherInfo);

相关文章

  • 29.ARouter组件互调原理

    上一篇https://www.jianshu.com/p/0fa14358a765[https://www.jia...

  • js 父子组件函数相互调用

    父子组件相互调用函数 在父子组件内的都得使用箭头函数 省略写法 ()=>this.action() || th...

  • 2019-1-2 父子组件及传值

    1.父子组件:组件的相互调用中,我们把调用者称为父组件,被调用者为子组件。 2.父子组件的传值:通过给组件设置一个...

  • iOS-组件化开发-路由

    当越来越多的组件开发好以后,如何方便的使用组件?如何实现组件之间相互调用?如何减少组件间的耦合性?这些思考的出现,...

  • iOS开发中路由

    1.简介 组件化的开发已经成为诸多应用的首要选择,那么在组件化的过程中不可避免组件之间需要通信(即组件之间相互调用...

  • Vue:父子组件信息传递

    组件化开发是Vue的特色,同时也是未来前端开发的趋势,组件的相互调用也产生了组件沟通问题。在Vue1.X中我们使用...

  • onRef

    原理:onRef 通讯原理就是通过 props 的事件机制将组件的 this(组件实例)当做参数传到父组件,父组件...

  • ServiceLoader浅析以及在Android组件化中的使用

    最近在了解Android组件化开发相关模式,在组件间通信和服务相互调用的时候,除了ARouter,意外发现了Ser...

  • HHRouter解析

    关于App内部的路由设计,主要需要解决2个问题: 1.各个页面和组件之间的跳转问题。 2.各个组件之间相互调用。 ...

  • Flink On Yarn 集群原理

    Yarn 架构原理 - 总览 Yarn 架构原理- 组件Yarn 集群中的组件包括:● ResourceManag...

网友评论

    本文标题:29.ARouter组件互调原理

    本文链接:https://www.haomeiwen.com/subject/oofttltx.html