习题 1. 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
答:依赖倒置原则是面向对象设计原则之一。具体表现为:
- 高层模块不应该依赖低层模块,二者都应该依赖抽象。
- 抽象不应该依赖具体实现,具体实现应该依赖抽象。
之所以被称为好莱坞原则,是因为基于该理念设计的系统,与
"不要给我们打电话,我们会给你打电话(Don't call us, we'll call you)"
的好莱坞原则理念一致。
习题 2. 请描述一个你熟悉的框架,是如何实现依赖倒置原则的?
答:以 Spring 框架为例,Spring 框架的一大特点就是控制反转。基于 Spring 框架开发的工程中,我们不主动通过传统的 new 方式直接创建 service/dao 对象,而是通过依赖注入的方式,由 Spring 来负责统一管理对象的生命周期和对象间的关系。
习题 3. 请使用接口隔离原则优化 Cache 类的设计,画出优化后的类图。