`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();
}
`