TheRouter 的跨模块依赖注入实现原理

本文介绍了TheRouter在Android上的跨模块依赖注入实现,参照SOA设计,类似AIDL。它支持声明接口服务、服务使用、服务提供,并允许自定义服务拦截和缓存策略。通过示例展示了如何声明接口、使用服务、提供服务以及实现服务拦截和缓存功能。
摘要由CSDN通过智能技术生成

`TheRouter`用于跨模块通信设计的`ServiceProvider`,核心设计思想是参考了SOA(面向服务架构)的设计方式。    

具体到 Android 侧就是 AIDL 类似的实现。


模块化能力支持项:  

- 支持跨模块依赖注入
- 支持自定义注入项的创建规则,依赖注入可自定义参数
- 支持自定义服务拦截,单模块mock调试
- 支持注入对象缓存,多次注入 只会new一次对象

### 1.0 依赖注入

用于跨模块通信使用,核心设计思想是参考了[SOA(面向服务架构)](https://baike.baidu.com/item/%E9%9D%A2%E5%90%91%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84/8258990) 的设计方式。
具体到 Android 侧就是 AIDL 类似的实现:  
例如当前有两个模块:A订单模块、B登录模块,下单需要获取用户信息。  
这个业务场景就是,A需要使用获取用户信息的服务,B需要向外提供一个获取用户信息的服务。  

 

 

#### 1.1 声明接口服务

首先声明一个接口,放入公共依赖层  

```java
// 假设当前有一个用户信息获取服务
public interface IUserService {
    String getUserInfo();
}
`

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值