这套关于 ADT 架构方法论的第二章,把注意力从“数据类型怎么定义”转向了“类型之间怎么接起来”。它解决的是一个很具体、也很容易在代码里被忽视的问题:当你把系统拆成若干模块后,接口不该只是几个函数签名,而应该成为能承载业务语义的“联结碎片”。很多学习者写代码时,接口要么定得太宽,什么都能传;要么定得太窄,一改需求就要重写。这一章就是帮你找到那个平衡点。

你缺的是“接口的质感”,不是语法

如果你已经能熟练使用类、接口、抽象类,但依然觉得模块之间耦合很重,或者每次加新功能都要改动多处调用方,那这章的内容正好补上你的缺口。它不教你如何声明一个 interface,而是带你区分“强势接口”和“弱势接口”:强势接口把约束条件写进类型里,让错误在编译期就暴露;弱势接口则用更宽松的契约换取灵活性,但代价是运行时判断变多。视频里用范例演练演示了这两种设计在同一个业务场景下的不同走向,你看的时候可以停下来,把自己手头某个接口拿过来对照一下——它到底是强势还是弱势?为什么当初会那样定?

建议先看范例演练,再回头啃概念

如果你是第一次接触 ADT 方法论,不要按顺序从第一节看到最后一节。建议先看第 4 节“范例演练”,先看到具体代码里接口联结的“碎片”长什么样,理解它要解决的实际问题;然后再回到第 2、3 节去理解强势接口和弱势接口的定义与取舍。接着看第 5、6 节,这两节讲的是通用性接口和接口特殊化,本质上是一对反向操作:一个让接口能覆盖更多场景,一个让接口在特定场景下更精准。最后再看第 7 节多态和第 8 节特殊性接口设计,把前面几节的知识串成一条线。这样走一遍,比线性观看更容易在脑子里形成结构。

学完能独立做什么,资料怎么配合练习

学完这一章,你应该能独立完成这样一件事:拿到一个已有模块,先画出它对外暴露的接口,然后判断哪些接口是“弱约束”的,哪些是“强约束”的;接着尝试用接口特殊化把过宽的接口拆窄,用通用性接口把重复的接口合并,并用多态替换掉代码里显式的 if-else 分支。最终,你能在不改变外部行为的前提下,让模块之间只通过“有语义的接口”联结,而不是靠传递裸字符串或通用对象。资料包里是分章节的视频,建议每看完一节就暂停,把视频里的示例代码自己重写一遍,再修改一两个条件,观察接口变化对调用方的影响。如果某个概念卡住了,先跳回第 4 节看例子,不要硬啃。等你能用自己的话解释“为什么接口是联结碎片”时,这章就算真正吃透了。

课程目录

1 Sec_01:接口联结碎片_Introduction (08:05)
2 Sec_02:接口联结碎片_强势接口 (08:41)
3 Sec_03:接口联结碎片_弱势接口 (07:23)
4 Sec_04:接口联结碎片_范例演练 (09:32)
5 Sec_05:接口联结碎片_通用性接口 (10:57)
6 Sec_06:接口联结碎片_接口特殊化 (15:42)
7 Sec_07:接口联结碎片_活用多态(Polymorphism) (07:58)
8 Sec_08:接口联结碎片_特殊性接口设计 (11:18)