为什么你需要单独补这一课

很多 Android 开发者写代码时,new 一个对象是本能,但一旦遇到“同一套界面要适配不同品牌、不同系统版本、不同分辨率”的需求,就开始在 Activity 里堆 if-else,或者把创建逻辑散落在各处。等到要换一套皮肤、换一套数据源,才发现改一处牵动全身。这门课讲的就是这种场景下最该先掌握的模式——抽象工厂(Abstract Factory)。它不是让你背定义,而是让你看清 Android 框架里哪些地方已经用了它,以及你自己写业务代码时怎么用同样的套路把“创建对象”和“使用对象”拆开。

如果你已经知道单例、工厂方法,但对抽象工厂的理解停留在“多个工厂方法”这个层面,这课正好帮你把缺口补上。它不要求你懂复杂的架构,会 Java 基础、能看懂 Android 的 Activity 和 View 创建流程就够了。建议先看课程里介绍模式的那一节,把抽象工厂和普通工厂的区别理清,再去看 Android 框架与抽象工厂的对应关系——你会发现很多平时没注意的系统类,其实早就在用这套思想。

看完应该能回答的问题

学完这一课,你应该能独立回答:为什么 Android 的 View 创建能根据不同的系统版本自动选择不同实现?为什么有些框架的“皮肤切换”不需要改业务代码?如果你要设计一个支持多主题、多数据源的组件,抽象工厂该放在哪一层?更进一步,你能在项目里识别出哪些地方正在用 if-else 创建对象,并判断是否值得重构为抽象工厂——不是所有地方都值得,这课会帮你建立这种判断力。

课程里对 Abstract Factory 模式的讲解,重点不是 UML 图,而是“美何在”这个角度。它会带你看到,当创建逻辑被集中到工厂接口后,调用方只依赖抽象产品,新增一套产品族时,调用方一行代码都不用改。这正是 Android 框架里大量使用的设计思路。所以别只停留在“知道概念”,要结合课程里 Android 框架的例子,去理解框架为什么这么设计,这才是你真正能带走的。

资料怎么配合练习

课程配套的资料里,目录是按“模式介绍—框架对照—实战应用”组织的。建议你先看模式介绍那一段,边看边在纸上画一下产品族和工厂接口的关系;然后看 Android 框架与抽象工厂的对照,这时候打开你的 Android Studio,跟着课程里提到的类,去看源码里实际怎么用。最后如果资料里有示例代码,不要直接复制,试着把示例里的产品族换成你自己的业务场景,比如把“登录方式”做成一个产品族,微信、手机号、邮箱各自实现,再用抽象工厂去创建。做完这一步,你才算真正会用。

练习时注意,抽象工厂的关键是“产品族”这个概念——同一族的产品必须配套使用。如果你发现你的场景里产品之间没有强关联,那可能用简单工厂或工厂方法更合适。这也是这门课值得反复看的原因:它帮你学会判断“什么时候不该用”。建议把课程里框架对照的部分至少看两遍,第一遍看热闹,第二遍带着“如果我来设计会不会这么做”的问题去读。这样学完,你不仅能独立写出抽象工厂的示例,还能在团队里讲清楚为什么某个模块该这么拆。

课程目录

1 Abstract Factory 模式美何在? (32:17)
2 介绍Abstract Factory 模式 (18:41)
3 Android 框架与Abstract Factory 模式 (19:12)