第二周作业课后作业

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



作业一:

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



依赖倒置原则内容是:高层不依赖低层,两者都依赖抽象;抽象不依赖实现,实现应依赖抽象。

个人以java语言来理解是:

1、一段代码逻辑中实体类A调用实体类B,采用依赖倒置原则是:高层A(抽象或实体类,建议为抽象)定义自己需要的接口a(接口类或抽象类),低层实体类B实现/继承该接口a, 然后高层A调用接口a。

2、抽象可以用接口类或抽象类表现。而实现就是具体的实体类。

个人认为“依赖倒置”从字面上看是一个很难理解和记忆的词语。也许是因为个人一开始并不清楚“依赖正向”是什么。查看了Bob大叔的《架构整洁之道》之后,才知道“正向”可以理解为控制流的方法,A调用B即A流向B。而“倒置”指的是代码依赖方向,B实现A定义的接口即B依赖A。



有时候依赖倒置原则又叫好莱坞原则,个人理解是在框架设计这个场景下。但依赖倒置不仅仅可以用在框架设计这个场景,在业务系统中也会经常用到,因为它是解耦的手段之一。



作业二:

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



JUnit框架

使用JUnit框架编写测试用例,开发者只需写测试业务代码即可,不需关心其是如何被调用的,完全是好莱坞原则。

在JUnit4之前,每个测试类都需要继承TestCase类。TestCase类就是框架高层策略定义的一个抽象。虽然在细节上还有更多要求:方法名必须以“test”为前缀, 必须返回void, 而且必须没有任何参数(例如 public void testDivide()),不遵循这个命名约定的测试方法将被JUnit框架忽略, 而且不抛出任何异常。

在JUnit4之后,使用注解@Test、@Before、@After等即可。但背后的原理是一样。



作业三:

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



发布于: 2020 年 06 月 17 日 阅读数: 35
用户头像

iHai

关注

还未添加个人签名 2018.07.26 加入

还未添加个人简介

评论

发布
暂无评论
第二周作业课后作业