一、API 模块的作用
route-api 模块是路由库对外提供的 API 接口,它封装了路由核心的功能,提供了更加简洁、易用的接口。API 模块使用了构建器模式,使得路由请求的构建更加灵活和直观。
二、核心类和接口
1. IRouterManager
IRouterManager 是路由库的主要管理接口,负责配置路由库和构建路由请求。
主要功能:
- 初始化和配置路由库
- 添加拦截器和降级策略
- 构建路由请求
2. RouterBuilder
RouterBuilder 是路由请求的构建器类,用于构建具体的路由请求。
主要功能:
- 设置路由路径
- 添加参数
- 配置跳转选项
- 执行路由跳转
三、构建器模式的优势
构建器模式在路由库中的优势:
- 链式调用 :支持流畅的链式调用,代码更加简洁
- 灵活配置 :可以根据需要配置路由请求的各种参数
- 类型安全 :支持参数类型检查,减少错误
- 可读性高 :代码结构清晰,易于理解
四、API 使用示例
1. 初始化和配置
class App : Application() {
override fun onCreate() {
super.onCreate()
// 初始化和配置路由库
IRouterManager.init(this)
IRouterManager.setDegradeStrategy(DefaultToastDegradeStrategy(this));
RouterCore.addInterceptor(LoginInterceptor(this));
}
}
- 基本路由跳转
// 跳转到 MainActivity
IRouterManager
.getInstance()
.build("/app/MainActivity")
.navigation(this)
- 带参数的路由跳转
// 跳转到 DetailActivity 并传递参数
IRouterManager
.getInstance()
.build("/app/DetailActivity")
.withString("id", "123")
.withInt("count", 10)
.withBoolean("isVip", true)
.navigation(this)
- Fragment 路由
// 获取 Fragment 实例
val fragment = IRouterManager
.getInstance()
.build("/app/MyFragment")
.withString("name", "Test")
.navigation(this) as? Fragment
// 将 Fragment 添加到容器中
if (fragment != null) {
supportFragmentManager.beginTransaction()
.replace(R.id.container, fragment)
.commit()
}
五、最佳实践
- 统一管理 :在 Application 类中统一初始化和配置路由库
- 链式调用 :充分利用构建器模式的链式调用,使代码更加简洁
- 参数传递 :对于复杂参数,考虑使用序列化或 Parcelable 接口
- 模块化 :按照功能模块组织路由路径,便于管理
通过本章的学习,我们了解了路由库的 API 模块和构建器模式的使用方法,接下来我们将学习路由库的高级功能和扩展。