架构师面试题 (1)
1. 请描述什么依赖倒置原则, 为什么有时候依赖倒置原则又被称为好莱坞原则
依赖倒置原则是
高层模块不应该依赖于低层模块, 二者都应该依赖于抽象
抽象不应该依赖于实现, 实现应该依赖于抽象.
著名的 Hollywood 原则是:"Don't call us , we'll call you" ,翻译过来是:请不要调用我们,我们会调用你。
这个原则阐述的是接口的所有权,体现了“倒置”的精髓,也是作为框架(framework)设计的核心原则,具体来说就是高层模块, 定义规则(接口), 低层模块实现规则(接口); 从而实现高层模块共用; 具体的低层的实现可以有很多个。
2. 请描述一个你熟悉的框架, 是如何实现依赖倒置原则的
这里 JDBC 中 DriverManager 相关的类图
从图中可以看出, DriverManager 依赖的 Driver 和 Connection 都是接口, 就是依赖的抽象,而不是实现.
3. 请用接口隔离原则优化 Cache 类的设计,画出优化后的类图
接口分离类图
评论