【架构师训练营】第 2 周作业

用户头像
花生无翼
关注
发布于: 2020 年 06 月 16 日

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

答:

依赖倒置原则(Dependence Inversion Principle,DIP)是 Object Mentor 公司总裁罗伯特·马丁(Robert C.Martin)于 1996 年在 C++Report 上发表的文章。

依赖倒置原则的原始定义为:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象(High level modules shouldnot depend upon low level modules.Both should depend upon abstractions.Abstractions should not depend upon details. Details should depend upon abstractions)。其核心思想是:要面向接口编程,不要面向实现编程。



从上面的定义看出来,依赖倒置原则有2个要点:

  1. 高层模块不应该依赖低层模块,二者都应该依赖抽象。

  2. 抽象不应该依赖具体实现,具体实现应该依赖抽象。



好莱坞原则是:“Don’t call me,I will call you”。你不要找我,我来找你。依赖倒置原则与好莱坞法则一一样,都是“高层找低层”,即不要来调用我,我会调用你。

依赖倒置原则让我们要面向接口编程,不要面向实现编程。

作业二:请描述一个你熟悉的框架,是如何实现依赖倒置原则的?

web开发中最常用的就是Tomcat,Tomcat是运行Java Web应用程序的容器。

Tomcat实现依赖倒置:我们开发的Web应用程序代码部署在Tomcat容器下,就可以被Tomcat 容器调用执行。这里面Tomcat就是高层模块,我们开发的Web应用程序代码就是低层模块。Tomcat和应用程序代码之间并没有直接的依赖关系,两者都依赖同一个“抽象”,即Servlet规范。Servlet规范不依赖具体的Tomcat容器和应用程序的实现细节,而Tomcat和应用程序依赖Servlet规范。



作业三:请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。

作业3

优化后类图如下:

优化后类图



用户头像

花生无翼

关注

日拱一卒,想到做到 2017.10.29 加入

还未添加个人简介

评论

发布
暂无评论
【架构师训练营】第2周作业