别把接口写成一次性代码

这门课解决的核心问题是:为什么你写的 Android 接口总是经不起需求变更?很多开发者习惯把通信协议、数据结构直接绑死在业务代码里,一旦底层模块替换、协议调整,整个上层逻辑就得推倒重来。这门课不讲基础语法,它只讲未来性设计——也就是如何让接口在面对变动时保持弹性。适合有一定 Android 开发经验、能独立写功能模块,但在架构设计上总是觉得“哪里不对劲却说不出来”的人。如果你还在用硬编码的方式连接两个模块,这门课就是来补你架构思维这块短板的。

先看假设再谈造物,最后关心自由度

资料包里的内容逻辑非常清晰,建议按顺序消化。第一块重点看“如何设计出未来性”以及 Docker 和 EIT 的案例,这部分是在建立认知模型:未来性不是凭空而来,而是基于对变动自由度的预判。第二块是三个连续的范例,必须连贯看完。它演示了一个关键动作——先定通信协议再开发模块,然后改变假设,用父类包装协议,最后推导出更多创新组合。这是整门课的练习核心,建议你在看完范例后,自己拿一个现有的 Android 项目,尝试把其中一对强耦合模块的通信协议抽象成父类,看看能不能实现替换。第三块“关心下层的变动自由度”是收尾,讲的是设计接口时必须留意的约束边界,不要为了弹性而过度设计。

学完能独立做的事

学完之后,你应该能独立完成一件事:拿到一个新需求时,不再立刻动手写实现代码,而是先定义接口契约,用父类或抽象层隔离通信协议,让上层业务和底层模块可以独立演进。具体来说,你能回答这几个问题:当前接口设计在哪些假设下成立?如果底层模块换了,哪些代码必须改?如何用包装模式让协议变更不影响业务逻辑?资料包里的范例代码要配合练习,不要只看视频。建议自己跟着范例写一遍通信协议的父类包装,然后故意改变一次假设(比如把 HTTP 换成 WebSocket),验证你的接口设计是否真的扛得住变动。如果改完上层代码不用动,说明你补上了这块缺口;如果还得改上层,说明没看懂,回头重看范例续集部分。

课程目录

1 缺乏未來性設計的情形 (09:27)
2 設計出未來性_How_to (05:26)
3 設計出未來性_以Docker和EIT為例 (04:19)
4 範例_假設先訂通信協議才開發兩個模塊 (03:09)
5 範例(續)_改變了假設_以父類包裝通信協議 (03:26)
6 範例(續)_調整假設之後_更多創新組合 (05:07)
7 关心下层的变动自由度 (10:31)