架构训练营第二周作业

用户头像
Gavin
关注
发布于: 2020 年 06 月 17 日

1. 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?

依赖倒置原则

  • 高层模块不应该依赖低层模块,二者都应该依赖其抽象

  • 抽象不依赖实现,而是实现依赖抽象

高层基于定义接口,低层提供实现(决策权在高层模块)



好莱坞原则

Don't call me, I'll call you



两者都说明的是同一件事,由高层决定低层:

  • 高层把握业务运行结构,低层负责具体实现

  • 高层主动调用低层,低层被动等待被调用

所以,依赖倒置原则 = 好莱坞原则



2. 请描述一个你熟悉的框架,是如何实现依赖倒置原则的。

SpringSecurity是一个web应用的安全框架,主要功能实现时是通过一系列过滤器链相互配合完成,我们编写的自定义过滤器通过继承GenericFilterBean

就可以被框架调用。

其中SpringSecurity就是高层模块,我们自定义的过滤器就是底层模块,SpringSecurity和我们编写的模块之间没有直接依赖,共同依赖GenericFilterBean抽象类,GenericFilterBean没有限定具体的实现内容



3. 请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。







用户头像

Gavin

关注

还未添加个人签名 2018.04.25 加入

还未添加个人简介

评论

发布
暂无评论
架构训练营第二周作业