架构训练营第二周作业
1. 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则
高层模块不应该依赖低层模块,二者都应该依赖其抽象;
抽象不依赖实现,而是实现依赖抽象
高层基于定义接口,低层提供实现(决策权在高层模块)
好莱坞原则
Don't call me, I'll call you
两者都说明的是同一件事,由高层决定低层:
高层把握业务运行结构,低层负责具体实现
高层主动调用低层,低层被动等待被调用
所以,依赖倒置原则 = 好莱坞原则
2. 请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
SpringSecurity是一个web应用的安全框架,主要功能实现时是通过一系列过滤器链相互配合完成,我们编写的自定义过滤器通过继承GenericFilterBean
就可以被框架调用。
其中SpringSecurity就是高层模块,我们自定义的过滤器就是底层模块,SpringSecurity和我们编写的模块之间没有直接依赖,共同依赖GenericFilterBean抽象类,GenericFilterBean没有限定具体的实现内容
3. 请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
评论