资讯详情

资讯详情

第309篇 组件化路由:编译期与运行时路由

承接上一篇《组件化改造:模块拆分与边界》,那一篇末尾提到「feature 之间不允许直接依赖,跨模块跳转走路由」,这一篇把路由这件事讲透。路由是组件化里最基础也最容易被低估的部分——它决定了模块之间能否真正解耦。结论先行:路由的核心职责不是「跳转到 Activity」,而是「在编译期缺失的类型依赖和运行时的跳转需求之间,建立一层可维护的间接」。它要解决三个问题:跨模块跳转、页面参数传递、以及「调用的目标不存在时怎么优雅降级」。一、路由要解决的三个真问题1.1 问题一:跨模块的类型引用// ❌ 直接引用:order 模块编译时需要 profile 模块的 class 文件 class OrderActivity : AppCompatActivity() { fun goToProfile() { startActivity(Intent(this, ProfileActivity::class.java)) } }这行代码让order模块在编译期就需要profile模块的 class 文件。依赖是双向的还是单向的,取决于谁先 import 谁——无论哪个方向,两个模块都被绑定了。路由方案里,order模块只知道一个字符串路径:// ✅ 只依赖路由框架,不知道目标模块存在 AppRoute
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →